Я использую следующий код в моем контроллере:значение грейферные Laravel из другой таблицы
public function show($id)
{
$playlist = Playlists::find($id); //Grab the playlist data from the database
$tracks = explode(', ',$playlist->tracks); //Seperate the track id's (remove the comma) -> In database it is stored like this: 54, 23, 45, 23, 23 etc..
$showTracks = array(); //Create a new array
foreach ($tracks as $track)
{
$showTracks[] = Tracks::where('id', '=', $track); //Grab the actual names of the tracks
}
return View::make('playlists/show')
->with('tracks', $showTracks);
}
Что у меня есть следующий. Таблица базы данных «Треки» и таблица под названием «Плейлисты». На всех дорожках есть поле под названием «имя», в котором указано полное имя песни. В моей таблице плейлистов у меня есть поле под названием «дорожки», в котором все дорожки, принадлежащие этому списку воспроизведения, хранятся с использованием идентификаторов треков, разделенных запятыми, например:
23, 45, 22, 12, 543. . и т. д.
Теперь, что я хочу сделать, когда я иду на mysite.com/playlists/1 (чтобы вызвать функцию show) - я хочу, чтобы все дорожки отображались по их имени, используя foreach, на мой взгляд лезвия:
@foreach ($tracks as $track)
{{ $track }}
@endforeach
Но с моей текущей функции я получаю следующее сообщение об ошибке:
Объект класса Осветите \ Database \ красноречивый \ Builder не может быть преобразован в строку
И если я это сделать:
@foreach ($tracks as $track)
{{ $track->name }}
@endforeach
Он показывает эту ошибку:
Не определено свойство: Осветить \ Database \ Красноречивым \ Builder :: $ имя
к сожалению, я не мог понять, где я мог бы пойти не так ..
Try $ трек [ 'name'] – MstfAsan
Вы должны изменить схему своей базы данных. Наличие разделенных запятыми значений в базе данных почти всегда является плохой идеей. Вы могли бы очень легко загрузить этот запрос, если бы у вас была правильная структура таблицы. – baao