簡體   English   中英

與雄辯的laravel數據庫同步

[英]Database sync with Eloquent laravel

我正在嘗試保存某些復選框的輸入。

我有一個表users_cities為:

id_user | id_city
--------+---------
   1    |    1
   1    |    2
   2    |    1

我有一個視圖,其中包含三個復選框。

在這種情況下,對於id_user = 1 ,city1 city2 city3將帶動city1和city2的檢查。

我要嘗試做的是,如果用戶選擇框3並取消選中框2或僅選擇框3,那么Eloquent將會識別數據並將其與數據庫同步。

public function update($id)
{
    $city[] = \App\City::find($id);

    $input = Request::all();

    //Tried:      $city->sync($input)
    //Also tried: $city->delete(); $city->save($input);
    return redirect()->back();
}

我有id_user$city變量和城市$input ,但我不能得到這個工作。

視圖:

@extends('welcome')

@section('content')

    <h1>Atualizar cidades</h1>


    @foreach ($city as $citySelect)

        <?php $number[] = $citySelect->id_city; ?>

    @endforeach 

    {!! Form::model($city, ['route' => ['cities.update', $citySelect->id_user]]) !!}

    @foreach ($cidades as $cidadesnome)

        {!! Form::checkbox($cidadesnome->id, $cidadesnome->name, (in_array($cidadesnome->id, $number)), ['class' => 'field']) !!}{!! $cidadesnome->name !!}

    @endforeach

    <button class="btn btn-success" type="submit"> 
        Atualizar Cidades
    </button>
    {!! Form::close() !!}

@stop

關系:

public function cities() {
    return $this->belongsToMany('City', 'users_cities', 'id_city', 'id_user');
}

public function users() {
    return $this->belongsToMany('Users', 'users_cities', 'id_user', 'id_city');
}

我有id_user$city變量和城市$input ,但我不能得到這個工作。

因為使用$city[] = \\App\\City::find($id);這是不可能的$city[] = \\App\\City::find($id); 因此$city不是id_user而是一個包含一個App\\City實例的數組。

要同步ID為$id的用戶所在城市,您需要執行以下操作:

public function update($id)
{
    $user = \App\User::findOrFail($id);
    $input = Request::all();
    $user->cities()->sync($input['cities']);

    return redirect()->back();
}

您還需要更改復選框名稱,以發送一系列城市並命名為cities[]

@foreach ($cidades as $cidadesnome)
    <label>
    {!! Form::checkbox('cities[]', $cidadesnome->id, (in_array($cidadesnome->id, $number)), ['class' => 'field']) !!}{!! $cidadesnome->name !!}
    </label>
@endforeach

所有這些都假設您在模型中定義了正確的關系。 我看到您沒有為列名遵循雄辯的命名約定 我強烈建議您關注他們。 它們將使您的關系定義更加容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM