Я пытаюсь понять, как Laravel обрабатывает сводные таблицы. Я почти там, и тогда эта ошибка выскакивает:Почему вызов отношений onetoMany в Laravel 5.3 вызывает неопределенную ошибку свойства?
Undefined property: Illuminate\Database\Eloquent\Collection::$subcategory
Я 99% уверен, что это потому, что я не называю отношения должным образом, и в результате он не может вытащить данные из объект. Тем не менее, поскольку у Laravel очень мистический способ делать повороты, и после нескольких часов траления через документацию, учебники и объяснения. Я все еще довольно потерял, как реализовать отношения. Это то, что у меня есть. Что я ошибаюсь?
бирки модели:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Ministry_Prefs_User extends Model
{
protected $table = 'ministry_prefs';
public function ministry_prefs_user() {
return $this->belongsToMany('App\UserEdit', 'tag_user', 'tag_id', 'user_id');
}
}
Соответствующий код модели пользователя:
public function ministry_prefs_user() {
return $this->belongsToMany('App\Ministry_Prefs_User', 'tag_user', 'user_id', 'tag_id');
}
Контроллер:
public function show($id)
{
try {
$loc = UserEdit::findorFail($id);
$array = UserEdit::findorFail($id)->toArray();
//$prefs = Ministry_Prefs_User::find($id);
return view('UserEdit', compact('array', 'loc'));
} catch(\Exception $e) {
return \Redirect::route('users.index')
->withMessage('This user does not exist');
}
}
Лопатка печать тестовых данных:
{{ $loc->ministry_prefs_user->subcategory }}
Пробовал это, что, безусловно, не работает:
@Foreach ($prefs->ministry_prefs_user as $pref)
{{ $pref->tag }}<br>
{{ $pref->subcategory }}: {{ $pref->description }}
@Endforeach
таблица tag_user выглядит немного как это с внешними ключами связанные гиперссылками (я думаю):
Данные хранится как так:
таблица ссылка теги выглядит как это:
Да, я унаследовал это, так что повсюду. Я убираю как можно лучше, когда приближаюсь к срокам. Но я все еще изучаю процессы автоматизации, и я стараюсь избежать потенциального нарушения данных.