我正在尝试为帖子和类别使用一对多关系。对于数据库列,如果我像这样使用
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->integer('category_id');
$table->timestamps();
});

public function Category()
{
return $this->belongsTo('App\Category');
}
在类别模型中
public function posts()
{
return $this->hasMany('App\Post');
}
如果我使用上面的方法,例如 $ table->整数(' category_id'),它的工作原理。但我想使用自定义名称之类的 $ table->整数(' cat_id'),不使用category_id之类
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->integer('cat_id');
$table->timestamps();
});

答案 0 :(得分:2)
如果您在一对多关系下Eloquent: Relationships查看Laravel网站,您会看到:
与hasOne方法一样,您也可以通过将其他参数传递给hasMany方法来覆盖外键和本地键:
return $this->hasMany('App\Comment', 'foreign_key');
return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
$this->belongsTo
的情况也是如此,这只是一对多的关系。所以在你的情况下:
return $this->belongsTo('App\Category', 'cat_id');