【问题标题】:Insert parent and child at once in Laravel 5.6在 Laravel 5.6 中一次插入父母和孩子
【发布时间】:2018-07-08 00:16:09
【问题描述】:

我试图在我的 usersuser_details 表中同时插入数据。见以下代码:

型号:

class User extends Authenticatable
{
    public function user_detail() {
        return $this->hasOne('App\UserDetail', 'user_id');
    }
}

查看:

<div class="form-group{{ $errors->has('username') ? ' has-error' : ''}}">
    {!! Form::label('username', 'Username:* ', ['class' => 'col-md-4 control-label']) !!}
    <div class="col-md-6">
        {!! Form::text('username', null, ['class' => 'form-control', 'required' => 'required']) !!}
        {!! $errors->first('username', '<p class="help-block">:message</p>') !!}
    </div>
</div>
...
<div class="form-group{{ $errors->has('user_detail[about_me]') ? ' has-error' : ''}}">
    {!! Form::label('user_detail[about_me]', 'About Me: ', ['class' => 'col-md-4 control-label']) !!}
    <div class="col-md-6">
        {!! Form::textarea('user_detail[about_me]', null, ['class' => 'form-control', 'required' => 'required']) !!}
        {!! $errors->first('user_detail[about_me]', '<p class="help-block">:message</p>') !!}
    </div>
</div>

控制器:

public function store(Request $request) {
    $data = $request->except('password'); //dd($data);
    $user = User::create($data);
    $user->user_detail->create($data['user_detail']);
}

错误信息:

在上面我已经发布了我的代码(删除了其余字段。只保留用户表 username 和 user_details about_me

在我上面的代码中,数据成功插入users表,但插入子表时出错。

请查看我的代码并建议我如何在我的子表中插入记录。

【问题讨论】:

标签: laravel laravel-5 insert


【解决方案1】:

错误代码是$user-&gt;user_detail。它必须是nullUserDetail 的实例,因为您现在创建了用户$user-&gt;user_detail,它必须是null。您必须使用 $user-&gt;user_detail() 而不是 $user-&gt;user_detail 。更正的代码是

public function store(Request $request) 
{
    $data = $request->except('password');
    $user = User::create($data);
    if ($user) {
        $user->user_detail()->create($data['user_detail']);
    }
}

【讨论】:

  • 另外你必须确定$data['user_detail']是数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2018-01-15
相关资源
最近更新 更多