用于多个模型的表单模型绑定laravel 5.1

时间:2016-07-15 09:13:14

标签: laravel

我希望laracollective的Form包中的多个对象的Form模型绑定? 有什么事如下?

$html = file_get_contents("https://qc.yahoo.com/"); if ($result === FALSE) { die("?"); } echo $html;

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

1 个答案:

答案 0 :(得分:2)

我假设你正在使用Laravel-Collective,不幸的是你不能做那样的事情。相反,你可以尝试这样的事情:

<强>更新

您可以在控制器中查询所有模型,并将它们组合在一起:

      $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>

或另一种解决方案

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

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

    供应商:

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


    1. 像这样构建您的响应查询: $user = Vendor::with('user')->find($user_id);
    2. 然后在您的视图模板中:
    3. {!! Form::model($user, ...) !!} Vendor: {!! Form::text('vendor_name') !!} User: {{ Form::text('user[username]') }} {!! Form::close() !!}