2015-09-13 67 views
3

我正在使用Laravel 5.1。Laravel 5.1 - 雄辯的關係更新函數

我有表,user表,users_detailoneToOne關係。 我已經成功地將兩個數據表顯示爲一種形式。

現在我想在我的控制器中運行update函數。我已經知道如何在我的其他項目中運行update函數單個表。你可以給我一個線索如何運行update這個兩個表在單個控制器?

我們是否需要使用此Laravel update()函數?要不然?

我用這對我view

... 
{!! Form::model($users, ['method' => 'PATCH', 'route' => 'dashboard.user.update', $users -> id]) !!} 
    <div class="form-group"> 
     {!! Form::label('User ID', 'User ID:') !!} 
     {!! Form::text('id', $users->id, $attributes = array('id'=>'disabledInput', 'Disabled', 'class'=>'form-control', 'placeholder'=>'User ID')); !!} 
    </div> 
... 
    <div class="form-group"> 
     {!! Form::label('Place Of Birth', 'Place Of Birth:') !!} 
     {!! Form::text('placeOfBirth', $users->UsersDetail->placeOfBirth, $attributes = array('class'=>'form-control', 'placeholder'=>'Place Of Birth')); !!} 
    </div> 
... 
... 
{!! Form::close() !!} 
... 

回答

0

最後,我找到了一種方法。這並不像我那麼難。

public function update(Request $request, $id) { 
    //   
    $usersUpdate = $request->all(); //get all value from form 

    $users = User::find($id); //find the primary key of User table 
    $usersDetail = UsersDetail::find($id); //find the foreign key UsersDetail table 

    $users->update($usersUpdate); //update the User table 
    $usersDetail->update($usersUpdate); //update the UsersDetail table 

    return redirect('dashboard/user'); 
} 
1

繼承人一個很好的把戲,所有在一行。 associate()用於更新belongsTo()關係。

它會像這樣

$user = User::find($id); 
    $record= new User_Detail($request->all()); 

    $record->user()->associate($user); 
    $record->save(); 

許多你可以使用附加同步模式

生病用品這個例子很多關係。

$new_article = new Article($request->all()); 
    $new_article->save(); //I need to save it first so that we the article ID 

    Auth::user()->article()->attach($new_artcile->id);