Laravel Model/View 关系
Laravel Model/View Relationship
我正在学习 Laravel 只是无法理解如何解决以下问题。
我有两个表(当然不是数据库):)
Table: Birds
id
name
species
....
Table: Eggs
id
egg_number
parent_id
....
示例数据:
bird
id 1
name Jeff
egg
id 1
parent_id 1
我有两个模型,鸟和蛋
我只是显示数据库中可用的数据 (MySQL)。
eggs.blade.php
@foreach ($eggs as $egg)
..form data
{{ $egg->id }}
{{ $egg->parent_id }}
..end of form
@endforeach
一切正常。但是我希望显示 parent (鸟)的名称而不是 ID。 (因此从示例数据中它将显示 Jeff)
我试过在模型中使用它
return $this->belongsTo('Bird'); //in Egg Model
return $this->belongsTo('Egg'); //in Bird Model
如果有任何关于此的 help/explanation,我们将不胜感激。
通过以下步骤很容易关联它
1- 在鸟模型中你必须这样做
public function Eggs(){
return $this->hasMany('App\Egg');
}
2-然后在鸡蛋模型中
public function Bird(){
return $this->belongsTo('App\Bird');
}
有关详细信息,请访问 Laravel Documention
希望能帮到你..
在您的 Egg
模型中,您需要像这样设置关系:
public function bird()
{
return $this->belongsTo(Bird::class,'parent_id');
}
如果您的列是 bird_id
,它会自己找到外键列,但是由于它会自动尝试附加 _id
的模型名称,所以它不知道要查找哪一列采用。但是可以直接在belongsTo()
.
中用第二个参数指定引用Bird
主键的列
执行此操作后,您将能够像这样简单地引用关系:
{{ $egg->bird->name }}
我正在学习 Laravel 只是无法理解如何解决以下问题。
我有两个表(当然不是数据库):)
Table: Birds
id
name
species
....
Table: Eggs
id
egg_number
parent_id
....
示例数据:
bird
id 1
name Jeff
egg
id 1
parent_id 1
我有两个模型,鸟和蛋 我只是显示数据库中可用的数据 (MySQL)。
eggs.blade.php
@foreach ($eggs as $egg)
..form data
{{ $egg->id }}
{{ $egg->parent_id }}
..end of form
@endforeach
一切正常。但是我希望显示 parent (鸟)的名称而不是 ID。 (因此从示例数据中它将显示 Jeff)
我试过在模型中使用它
return $this->belongsTo('Bird'); //in Egg Model
return $this->belongsTo('Egg'); //in Bird Model
如果有任何关于此的 help/explanation,我们将不胜感激。
通过以下步骤很容易关联它 1- 在鸟模型中你必须这样做
public function Eggs(){
return $this->hasMany('App\Egg');
}
2-然后在鸡蛋模型中
public function Bird(){
return $this->belongsTo('App\Bird');
}
有关详细信息,请访问 Laravel Documention
希望能帮到你..
在您的 Egg
模型中,您需要像这样设置关系:
public function bird()
{
return $this->belongsTo(Bird::class,'parent_id');
}
如果您的列是 bird_id
,它会自己找到外键列,但是由于它会自动尝试附加 _id
的模型名称,所以它不知道要查找哪一列采用。但是可以直接在belongsTo()
.
Bird
主键的列
执行此操作后,您将能够像这样简单地引用关系:
{{ $egg->bird->name }}