Здесь вы пытаетесь load
отношений на коллекции вместо Model
, потому что $p
содержит коллекция Models
поэтому этот код не будет работать
$p = Project::all();
$p = $p->load('skills', 'user', 'comments', 'suggests');
var_dump($p->skills()); <-- $p is a collection not a Model
Вы можете использовать цикл или использовать индекс в коллекции сп cify в Model
, для которого вы хотите загрузить отношения как:
$p = Project::all();
$p = $p->load('skills', 'user', 'comments', 'suggests');
// Get the first Model from collection and load it's first
// skill from collection of skills objects
dd($p->first()->skills()->first());
Или использовать индекс, чтобы указать элемент в коллекции, как:
$skills = $p->get(2)->skills()->get(); // Get skills from second Project, 1st = 1
dd($skills->get(2)); // Get second skill item from collection of skills
Кроме того, вы можете запустить петлю
$p = Project::all();
foreach($p as $project) {
$skills = $project->skills()->get();
dd($skills->first());
dd($skills->get(2)) // 2nd item/skill, 1st = 1 (not 0)
// Or another loop
foreach($skills as $skill) {
// Use $skill->field_name
}
}
Вы имеете в виду сказать '' 'var_dump ($ p-> skills);' '' возможно? –
@VictorBjelkholm then 'Undefined property: Illuminate \ Database \ Eloquent \ Collection :: $ skills' – revo
Можете ли вы разместить код в своей модели проекта, где определены отношения? У вас есть список как «умение» вместо «навыков»? –