【发布时间】:2019-10-23 05:42:44
【问题描述】:
我有一个make 表和post 表。 Make 表将 make 名称保存为 make_code 和 make_name。
Post 表有一列 make。保存帖子时,它会保存make_code中的make。
在刀片中显示时,我希望它显示为make_name。我该怎么做?
目前{{$post->make}} 给了我make_code。我需要它显示make_name。
我认为这是需要的一对一关系。我试着把它放在模型中,但没有奏效。我怎样才能实现它?
制作模型
class Make extends Model
{
public function make()
{
return $this->belongsTo(App\Post::class);
}
}
发布模型:
class Post extends Model
{
protected $table = 'posts';
}
【问题讨论】:
-
你也必须定义逆;所以
hasOne在你的Post模型上。另外,您的posts表是否有一个名为make的列? -
是的,它确实有一个专栏。
-
如果您尝试将关系定义为
public function make(),这将导致问题。通常,为了使表相互关联,您定义{table}_id,因此您的posts表将有一个与id的makes相关的make_id列。你现在拥有它的方式是可行的,但可能会有问题。无论哪种方式,定义Post和Make之间的关系。此外,在您的Make模型上,关系应该是public function post(),因为它与Post模型相关。
标签: php laravel eloquent laravel-5.5 laravel-5.8