我想为 laracollective 的 Form 包中的多个对象绑定(bind) Form 模型? 有以下内容吗?
Form::model([$user,$vendors], array('route' => array('user.update', $user->id)))
我在哪里可以请求此功能?
最佳答案
我假设您使用的是 Laravel-Collective ,不幸的是你不能做那样的事情。相反,您可以尝试这样的事情:
更新
您可以在 Controller 中查询所有模型并像这样组合它们:
$user = User::where('id',$user_id)->get();
$vendor = Vendor::where('user_id',$user_id)->get();
//merge two model
$user = $user->merge($vendor);
// return $user;
return view('admin.users.edit', compact('user'))
->withTitle('Edit user');
并在您的表单中这样调用它们:
{!! Form::model($user[1], ['route' => ['admin.users.update', $user],'method'=>'PUT']) !!}
@include('admin.users._formEdit')
<div>
{!! Form::submit('Save user', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
_formEdit.blade.php
<div class="form-group">
{!! Form::label('first_name', 'First Name : ') !!}
{!! Form::text('user[first_name]', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('last_name', 'Last Name : ') !!}
{!! Form::text('user[last_name]', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group ">
{!! Form::label('email', 'Email : ') !!}
{!! Form::email('user[email]', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group ">
{!! Form::label('password', 'Password') !!}
{!! Form::password('password', ['class' => 'form-control']) !!}
</div>
<div class="form-group ">
{!! Form::label('vendor_name', 'vendor_name') !!}
{!! Form::text('vendor_name', null,['class' => 'form-control']) !!}
</div>
或其他解决方案
- 创建用户模型与供应商模型之间的关系(一对一或一对多)示例
用户:
public function vendor(){
return $this->hasOne('App\Vendor','user_id');
}
供应商:
public function user(){
return $this->belongsTo('App\User','user_id);
}
- 像这样构建您的响应查询:
$user = Vendor::with('user')->find($user_id);
- 然后在您的 View 模板中:
{!!形式::模型($用户,...)!!}
小贩: {!!表格::文本('vendor_name')!!}
用户:{{ Form::text('user[username]') }}
{!!表单::关闭() !!
关于laravel - 多个模型的表单模型绑定(bind)laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38392268/