У меня проблема с Laravel модельными отношениями. Мне нужно позволить пользователям создавать новые грузовики. Однако мне нужно сохранить поле производителя как идентификатор, а не заголовок. Поэтому я решил создать две таблицы (производители и грузовики), которые имеют отношение один ко многим (производители имеют несколько грузовиков, а один грузовик - одного производителя).
Вот файлы миграции. Таблица производителей:
public function up()
{
Schema::create('manufacturers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('manufacturer');
$table->timestamps();
});
}
Таблица грузовиков:
public function up()
{
Schema::create('trucks', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('make_id');
$table->unsignedInteger('year');
$table->string('owner');
$table->unsignedInteger('owner_number')->nullable();
$table->text('comments')->nullable();
$table->foreign('make_id')->references('id')->on('manufacturers');
$table->timestamps();
});
}
Производитель. php модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Manufacturer extends Model
{
/**
* @var string
*/
protected $table = 'manufacturers';
/**
* @var array
*/
protected $fillable = [
'manufacturer',
];
public function trucks(){
return $this->hasMany(Truck::class);
}
}
Truck. php модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Truck extends Model
{
/**
* @var string
*/
protected $table = 'trucks';
/**
* @var array
*/
protected $fillable = [
'make_id', 'year', 'owner', 'owner_number', 'comments',
];
public function manufacturer(){
return $this->belongsTo(Manufacturer::class);
}
}
Файл контроллера:
public function index()
{
$trucks = Truck::all();
return view('trucks.index')->with('trucks', $trucks);
}
index.blade. php
@foreach($trucks as $truck)
<tbody>
<tr>
<td>{{$truck->make_id}}</td> //I need this one to show manufacturers title
<td>{{$truck->year}}</td>
<td>{{$truck->owner}}</td>
<td>{{$truck->owner_number}}</td>
<td>{{$truck->comments}}</td>
</tr>
</tbody>
@endforeach
Теперь в этом представлении отображается идентификатор. Что мне нужно сделать, чтобы вместо идентификатора отображалось название производителя (Manufacturer.manufacturer)? Заранее всем спасибо!