Я не знаю, как создать Laravel
eloquent
объединение, когда у меня несколько таблиц:
Schema::create('released_items', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('code', 10);
$table->string('description');
***
$table->timestamps();
});
Schema::create('recipes', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('code', 10);
$table->string('description');
***
$table->timestamps();
});
public function up()
{
Schema::create('recipe_lines', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('fk_recipe_id')->unsigned();
$table->bigInteger('fk_released_items_id')->unsigned();
$table->string('code', 10);
$table->float('quantity');
$table->timestamps();
$table->foreign('fk_recipe_id')
->references('id')
->on('recipes')
->onDelete('cascade');
$table->foreign('fk_released_items_id')
->references('id')
->on('released_items')
->onDelete('cascade');
});
}
У меня есть модель "Рецепт":
public function lines()
{
return $this->hasMany(\App\RecipeLine::class, 'fk_recipe_id');
}
public function released_item()
{
return $this->hasOne(\App\RecipeLine::class, 'fk_released_items_id');
}
И Контроллер RecipeLines:
public function show($id)
{
$lines = Recipe::with('lines', 'released_item')->where('recipes.id', $id)->findOrFail($id);
}
Но я все еще не могу извлечь данные из release_items. Кто-нибудь знает, как это работает и может объяснить?