Laravel-在数据库中使用不同的字段名(表中的userid和在其他表中创建的userid)
我试图在数据库中为我的用户使用一个表,为用户的项目使用单独的表。但是,我希望用户id的字段名称不同。我希望从“用户”表中获取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
用作项目表中的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');
}