Php 在用户创建时附加关系(Laravel 5.4)

Php 在用户创建时附加关系(Laravel 5.4),php,laravel,eloquent,laravel-5.4,Php,Laravel,Eloquent,Laravel 5.4,我遇到了一个问题,当我尝试在用户创建上附加一个学校id时,我得到了一个NULL值。学校与用户有很多关系 这是我的UserController存储函数: public function store(Request $request) { $user->school_id = $request->school_id; $user = User::create($request->all()); $user->attachRole(Role::whe

我遇到了一个问题,当我尝试在用户创建上附加一个学校id时,我得到了一个
NULL
值。学校与用户有很多关系

这是我的UserController存储函数:

public function store(Request $request)
{
    $user->school_id = $request->school_id;

    $user = User::create($request->all());

    $user->attachRole(Role::where('id', $request->role)->first());

    return redirect()->route('user.index');
}
视图:


沃尔格斯科尔
@foreach($schools作为$school)
{{$school->name}
@endforeach

您正在分配
$user->school\u id
,然后在分配
$user
时重写所有内容。这可能会抛出一个错误,因为当您第一次尝试使用它时,
$user
没有定义。@aynber将$user->school\u id放在$user=user::create($request->all())下;也不起作用?不一定与您的问题相关,但
Role::where('id',$request->Role)->first()
可以更改为
Role::find($request->Role)
如果要保留设置,您需要在分配用户模型后保存它。它不会自动保存。谢谢!我调用了$user->save();成功了!:D
 <div class="form-group">
     <select class="form-control" name="school_id" required>
        <option disabled selected>Vælg skole</option>
             @foreach ($schools as $school)
                 <option value="{{ $school->id }}">{{ $school->name }}</option>
             @endforeach
     </select>
 </div>