我正在使用Laravel 5.1。
我有两个表,user
表和users_detail
表,oneToOne
关系。
我已经成功将两个数据表显示为一种形式。
现在我想在我的控制器中运行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 :(得分: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);
答案 1 :(得分: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');
}