表单模型绑定laravel 5.1用于多个模型 [英] Form model binding laravel 5.1 for multiple models

查看:56
本文介绍了表单模型绑定laravel 5.1用于多个模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要为laracollective的Form包中的多个对象绑定Form模型?以下内容?

Form :: model([$ user,$ vendors],array('route'=> array('user.update',$ user-> id)))

我在哪里可以请求此功能?

解决方案

我假设您正在使用 Laravel-集体,很遗憾,您不能做这样的事情.相反,您可以尝试这样的事情:

更新

您可以在控制器中查询所有模型,并像这样组合它们:

  $ user = User :: where('id',$ user_id)-> get();$ vendor =供应商::: where('user_id',$ user_id)-> get();//合并两个模型$ user = $ user-&m; merge($ vendor);//返回$ user;返回视图('admin.users.edit',紧凑型('user'))-> withTitle('编辑用户'); 

,然后在您的表单中这样称呼他们:

  {!!形式::模型($ user [1],['route'=> ['admin.users.update',$ user],'method'=>'PUT'])!!}@include('admin.users._formEdit')< div>{!!形式::提交('保存用户',['类'=>'btn btn-primary'])!!}</div>{!!形式:: 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">{!!格式:: label('email','Email:')!!}{!!Form :: email('user [email]',null,['class'=>'form-control'])!!}</div>< div class ="form-group">{!!形式::标签('密码','密码')!!}{!!Form :: password('password',['class'=>'form-control'])!!}</div>< div class ="form-group">{!!形式::标签(供应商名称",供应商名称")!!}{!!Form :: text('vendor_name',null,['class'=>'form-control'])!!}</div> 

或其他解决方案

  1. 在您的用户和供应商的模型之间建立关系(一对一或一对多)示例

用户:

 公共功能vendor(){返回$ this-> hasOne('App \ Vendor','user_id');} 

供应商:

 公共功能user(){返回$ this-> belongsTo('App \ User','user_id);} 


  1. 像这样构建您的响应查询: $ user = Vendor :: with('user')-> find($ user_id);
  2. 然后在您的视图模板中:

{!!形式::模型($ user,...)!!}小贩: {!!形式::文本('vendor_name')!!}用户:{{Form :: text('user [username]')}}{!!形式:: close()!!}

I want Form model binding for multiple objects in laracollective's Form package? Something as following?

Form::model([$user,$vendors], array('route' => array('user.update', $user->id)))

Where can I request this feature?

解决方案

I assume you're using Laravel-Collective, Unfortunately you cant do something like that. instead you can try something like this :

UPDATE

you can query all your model in your controller and combine them like this :

      $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');

and in your form call them like this :

{!! 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>

OR ANOTHER SOLUTION

  1. create relation between model of your User and Vendor (one-to-one or one-to-many) example

User :

public function vendor(){
   return $this->hasOne('App\Vendor','user_id');
}

Vendor:

public function user(){
  return $this->belongsTo('App\User','user_id);
}


  1. Build your response query like this : $user = Vendor::with('user')->find($user_id);
  2. and then in your view template :

{!! Form::model($user, ...) !!} Vendor: {!! Form::text('vendor_name') !!} User: {{ Form::text('user[username]') }} {!! Form::close() !!}

这篇关于表单模型绑定laravel 5.1用于多个模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆