В проекте Laravel 5 я пытаюсь показать зарегистрированному пользователю информацию об их пакетах уроков. Я пытаюсь использовать предложение where, которое получает нужную информацию. Кажется, я не могу получить данные о взаимоотношениях из коллекции, которую я возвращаю. Я потерян и прошу прощения. Кажется, я не могу найти никакой информации, относящейся к этой проблеме.laravel 5 показать связанные данные для входа в систему пользователя
Текущая ошибка: Не определено свойство: Осветить \ Database \ Eloquent \ Коллекция :: $ игроков (Вид: /home/ubuntu/workspace/resources/views/auth/account/mylessonhours.blade.php)
Мой контроллер:
public function getMyLessonhours(Lessonhours $lessonhours, Packages $packages)
{
$packages = Packages::all();
$lessonhours = Lessonhours::whereHas('players', function($q)
{
$q->where('users_id', '=', Auth::user());
})->with('players')->get();
return view('auth.account.mylessonhours', compact('lessonhours'), compact('packages'));
}
Мои отношения: пользователей:
public function players()
{
return $this->hasMany('App\Players', 'users_id');
}
Игроки:
public function users()
{
return $this->belongsTo('App\User', 'users_id');
}
Lessonhours:
public function players()
{
return $this->belongsTo('App\Players', 'players_id');
}
public function packages()
{
return $this->belongsTo('App\Packages', 'packages_id');
}
public function hoursused()
{
return $this->hasMany('App\Hoursused', 'lessonhours_id');
}
И часть зрения, которая не
<h3>{{ $lessonhours->players->getFullName($lessonhours->players_id) }}</h3>
{{ $lessonhours->players->gender }}<br>
<a href="#" class="btn btn-default btn- pull-right">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
Edit {{ $lessonhours->players->getFullName($lessonhours->players->id) }}</a>
Birthdate: {{ $lessonhours->players->birthdate->format('m-d-Y') }}<br>
Family: {{ $lessonhours->players->users->famname }}<br>
<hr>
Спасибо за помощь.
UDATE: После выполнения dd ($ lessonhours); Я получил следующие данные в коллекции, которая делает отображение нужной информации, я просто продолжать, чтобы получить «неопределенные» ошибка выше:
Collection {#216 ▼
#items: array:1 [▼
0 => Lessonhours {#202 ▼
#fillable: array:3 [▶]
+table: "lessonhours"
#dates: array:1 [▶]
#connection: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:6 [▼
"id" => 2
"players_id" => 2
"packages_id" => 2
"signup_date" => "2016-06-01"
"created_at" => "2016-11-19 03:31:11"
"updated_at" => "2016-11-19 03:31:11"
]
#original: array:6 [▶]
#relations: array:1 [▼
"players" => Players {#220 ▼
+table: "players"
#fillable: array:4 [▶]
#dates: array:1 [▶]
#connection: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:8 [▼
"id" => 2
"users_id" => 2
"fname" => "Girltest"
"lname" => "Testfam"
"gender" => "Female"
"birthdate" => "2010-10-04"
"created_at" => "2016-11-19 03:30:56"
"updated_at" => "2016-11-19 03:30:56"
]
#original: array:8 [▶]
#relations: []
#hidden: []
#visible: []
#appends: []
#guarded: array:1 [▶]
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
]
#hidden: []
#visible: []
#appends: []
#guarded: array:1 [▶]
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
]
}
UPDATE: Ошибка происходит с помощью следующей строки:
<h3>{{ $lessonhours->players->getFullName($lessonhours->players_id) }}</h3>
Код работает, но мне нужна только одна родительская запись.
Auth: user() dosent return id ... вам нужен Auth :: id() или Auth :: user() -> id; – RohitS
@wdarnellg вы используете для каждого для 'lessonhours' в поле зрения? поскольку вы использовали метод 'get()' для извлечения данных, он будет иметь массив коллекций независимо от количества результатов. Это может вызвать проблему – jaysingkar
@jaysingkar В этом была проблема. Добавление «@foreach» получило данные для отображения. Спасибо. Я бы приветствовал более элегантный способ сделать то же самое, если он есть. ;-) Как отметить это как ответ? – wdarnellg