Laravel-在数据库中使用不同的字段名(表中的userid和在其他表中创建的userid)

Laravel-在数据库中使用不同的字段名(表中的userid和在其他表中创建的userid),laravel,laravel-5,Laravel,Laravel 5,我试图在数据库中为我的用户使用一个表,为用户的项目使用单独的表。但是,我希望用户id的字段名称不同。我希望从“用户”表中获取id;在将创建的项目保存到数据库时,将该(用户)id用作项目表中的created\u by\u id public function store(CreateProjectRequest $request) { $project = new Project($request->all()); Auth::user()->projects()-&

我试图在数据库中为我的用户使用一个表,为用户的项目使用单独的表。但是,我希望用户id的字段名称不同。我希望从“用户”表中获取
id
;在将创建的项目保存到数据库时,将该(用户)
id
用作项目表中的
created\u by\u 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表中有一个名为id的字段

我想我可以通过更改主键来解决这个问题,但是我找不到如何获取Auth::user()->id;并使其以安全的方式将该值写入由_id创建的
中。这就是我发现的:

 class Project extends Eloquent {

   protected $primaryKey = 'created_by_id';

}

编辑:我不认为更改主键是我的解决方案。

您可以将第二个和第三个参数传递给
hasMany()
方法来指定要使用的键


您可以将第二个和第三个参数传递给
hasMany()
方法,以指定要使用的键


您可以将第二个和第三个参数传递给
hasMany()
方法,以指定要使用的键


您可以将第二个和第三个参数传递给
hasMany()
方法,以指定要使用的键


我在代码中添加了它。但是,它仍然没有在数据库中保存由
创建的
字段<代码>$table->integer('created_by_id')->unsigned()我的迁移文件就是这样的。当我dd($projects)时,它会将字段检测为可填充,但不会返回任何值。你知道我遗漏了什么吗?你有没有尝试过
$this->hasMany('App\Article','userid','created\u by\u id')projects()中编码>
?我想如果你显式地传递密钥,Laravel不会自动添加_id。我在代码中添加了它。但是,它仍然没有在数据库中保存由
创建的
字段<代码>$table->integer('created_by_id')->unsigned()我的迁移文件就是这样的。当我dd($projects)时,它会将字段检测为可填充,但不会返回任何值。你知道我遗漏了什么吗?你有没有尝试过
$this->hasMany('App\Article','userid','created\u by\u id')projects()中编码>
?我想如果你显式地传递密钥,Laravel不会自动添加_id。我在代码中添加了它。但是,它仍然没有在数据库中保存由
创建的
字段<代码>$table->integer('created_by_id')->unsigned()我的迁移文件就是这样的。当我dd($projects)时,它会将字段检测为可填充,但不会返回任何值。你知道我遗漏了什么吗?你有没有尝试过
$this->hasMany('App\Article','userid','created\u by\u id')projects()中编码>
?我想如果你显式地传递密钥,Laravel不会自动添加_id。我在代码中添加了它。但是,它仍然没有在数据库中保存由
创建的
字段<代码>$table->integer('created_by_id')->unsigned()我的迁移文件就是这样的。当我dd($projects)时,它会将字段检测为可填充,但不会返回任何值。你知道我遗漏了什么吗?你有没有尝试过
$this->hasMany('App\Article','userid','created\u by\u id')projects()中编码>
?我认为如果你明确地传递这些键,Laravel不会自动添加_id。
public function projects()
{
    return $this->hasMany('App\Article','userid','created_by');
}