我正在尝试为我的用户使用一个表,并在我的数据库中为用户的项目分隔表。但是我希望用户ID的字段名称不同。我想从'用户'表中获取id
;在将创建的项目保存到数据库时,在Projects表中使用该(用户)id
作为created_by_id
。
public function store(CreateProjectRequest $request)
{
$project = new Project($request->all());
Auth::user()->projects()->save($project);
// Project::create($request->all());
return redirect('pages/home');
}
同样在Users.php
,我补充道:
public function projects()
{
return $this->hasMany('App\Project');
}
评论字段正在自行运作。但是,我想我的问题出现了,因为当我再次评论该行,并添加另外两行($project...
和Auth::user...
位)时,我想它假设我在Projects表中有一个字段命名标识。
我以为我会通过更改主键来解决这个问题,但我找不到如何使用Auth :: user() - > id;并使其以安全的方式在created_by_id
中写入该值。这就是我发现的:
class Project extends Eloquent {
protected $primaryKey = 'created_by_id';
}
编辑:我认为更改主键不是我的解决方案。
答案 0 :(得分:3)
您可以将第二个和第三个参数传递给hasMany()
方法以指定要使用的密钥。 Documentation
public function projects()
{
return $this->hasMany('App\Article','userid','created_by');
}