2015-02-28 5 views
0

У меня есть много разных отношений между подкатегорией и артикальными столами и сводной таблицей artikal_podkategorija. Вставка работает нормально, но у меня нет идеи о том, как обновлять данные в сводной таблице. Я пытаюсь обновить артикульные данные и обновить данные сводной таблицы artikal_id, которая выбрана из selectform.Laravel 5 обновление сводной таблицы

PIVOT ТАБЛИЦА

Schema::create('artikal_podkategorija', function(Blueprint $table){ 
      $table->increments('id'); 
      $table->integer('artikal_id')->unsigned()->index(); 
      $table->foreign('artikal_id')->references('id')->on('artikli')->onDelete('cascade'); 

      $table->integer('podkategorija_id')->unsigned()->index(); 
      $table->foreign('podkategorija_id')->references('id')->on('podkategorije')->onDelete('cascade'); 

      $table->timestamps(); 
    }); 

Редактировать вид

{!! Form::model($artikal, ['method' => 'PATCH' , 'action' => ['[email protected]', $artikal->id]]) !!} 
<div class="form-group"> 
    {!! Form::label('Podkategorija', 'Podkategorija:') !!} 
    {!! Form::select('podkategorija_id[]', $podkategorija, null, array('class' => 'form-control','placeholder' => 'Podkategorija',)) !!} 


    {!! Form::label('Naziv', 'Naziv artikla:') !!} 
    {!! Form::text('Naziv', null, ['class' => 'form-control']) !!} 
</div> 


<div class="form-group"> 
    {!! Form::submit('Izmijeni podkategoriju', ['class' => 'btn btn-primary']) !!} 
</div> 


{!! Form::close() !!} 

Мой контроллер

public function store(CreateArtikalRequest $request) 
{ 

    $article = Artikal::create($request->all()); 
    $article->podkategorije()->attach($request->input('podkategorija')); 


    return redirect('artikli'); 
} 

ответ

0

В Laravel 5,1 или выше, это должно быть что-то вроде этого:

В вашем ArtikalsController:

public function edit($artikal_id) 
{ 
    $artikal = Artikal::findOrFail($artikal_id); 

    $podkategorijas = Podkategorija::lists('podkategorija_id', 'podkategorija_id'); 

    return view('artikals.edit', compact('artikal', 'podkategorijas')); 
} 

public function update(Request $request, $artikal_id) 
{ 
    $artikal = Artikal::findOrFail($artikal_id); 
    $artikal->update($request->all()); 

    $artikal->podkategorijas()->sync($request->input('podkategorijas_list')); 

    return redirect('artikals'); 
} 

В модели Artikal:

public function getPodkategorijaListAttribute() 
{ 
    return $this->podkategorijas->lists('podkategorija_id')->all(); 
} 

В вашем edit.blade.php:

{!! Form::label('podkategorija_list', 'Tags') !!} 
{!! Form::select('podkategorija_list[]', $podkategorijas, null, ['multiple']) !!} 
Смежные вопросы