我想将3个表加入Laravel。
我的第一个表名为 cars ,第二个 model 和最后的 mark 。
表汽车和模型之间的联接是可以的,但是我想在表汽车中获得标记。 / strong>。
here is my tables with my fields
在我的cars.index.blade概述中,我没有得到fk_mark。
在我的创建桌车中,我有这个:
public function up()
{
Schema::create('cars', function (Blueprint $table) {
$table->increments('id');
$table->string('matriculation', 15);
$table->string('number_car', 15);
$table->integer('fk_modele')->unsigned();
$table->foreign('fk_modele')->references('id_modele')->on('modele');
$table->timestamps();
});
}
创建表模型
public function up()
{
Schema::create('modeles', function (Blueprint $table) {
$table->increments('id');
$table->string('name_model', 15);
$table->integer('fk_mark')->unsigned();
$table->foreign('fk_mark')->references('id_mark')->on('mark');
$table->timestamps();
});
}
创建表格标记
public function up()
{
Schema::create('marks', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 25);
$table->timestamps();
});
}
我认为可以吗?
然后在模型中
模型车
class Car extends Model
{
public function modele(){
return $this->belongsTo('App\Modele', 'fk_modele');
}
}
模型建模
class Modele extends Model
{
//
public function car(){
return $this->hasMany('App\Car', 'fk_modele', 'id');
}
public function mark(){
return $this->belongsTo('App\Mark', 'fk_mark');
}
到目前为止没有问题...
但是对于模型Mark ,我有以下提示:
public function mark(){
return $this->hasMany('App\Mark', 'fk_mark', 'id');
}
public function cars()
{
return $this->hasManyThrough(
'App\Car',
'App\Model',
'fk_mark', // Foreign key on users table...
'fk_modele', // Foreign key on posts table...
'id', // Local key on countries table...
'id' // Local key on users table...
);
}
现在可以吗?
在我的文件cars.index.blade中,我停留在car->mark->name
“试图获取非对象的属性”名称”
@foreach($cars as $car)
<tr>
<td> {{$car->matriculation}}</td>
<td> {{$car->number_car}}</td>
<td> {{$car->modele->name_model}}</td>
<td> {{$car->mark->name}}</td>
谢谢您的帮助。