/ / Laravel Багато, щоб багато - php, laravel, laravel-5, красномовні

Ларавель багато для багатьох - php, laravel, laravel-5, красномовний

У мене є додаток laravel і у мене є наступні моделі

  1. Семінар
  2. Майстерня категорії

У мене 3 столу,

  • семінарів
  • category_categories
  • відношення семінару

Я намагаюся красномовно використати всі свої майстерні, з такими категоріями, як:

{

"id":14,
"workshop_name":"First Workshop",
"description":"Located all over",
"categories": array: [
0 => "wood"
1 => "metal"
]

}

Яким буде найкращий спосіб досягти цього? я б у своїй моделі майстерні додав наступне:

public function categories()
{
return $this->belongsToMany("AppWorkshopcategory", "workshop_category_relation", "workshop_id", "category_id");
}

Я додав вищезгадану функцію до своєї моделі майстерні і, коли спробую вивести семінар, на зразок наступного:

$workshop = Workshop::FindOrFail(14);
return $workshop->categories();

Я отримую таку помилку:

Об'єкт класу IlluminateDatabaseEloquentRelationsBelongsToMany не може бути перетворено в рядок

Відповіді:

0 для відповіді № 1

Я думаю, ви просто шукаєте Багатьом багато.

Все, що вам потрібно зробити, це перейменувати workshop_category_relation таблицю до "workshop_category", а потім ваш belongsToMany повинен працювати.


0 для відповіді № 2

Коли ви телефонуєте:

return $workshop->categories()->get();

або просто:

return $workshop->categories;

Ви отримаєте Collection категорій, які стосуються майстерні, а потім ви можете повторити

foreach($workshop->categories as $category) {
$category->field_name
}