Добрый день,
Есть 2 модели - Марки и Выпуски марок:
class Mark extends Model
{
protected $table = 'marks';
public function editions()
{
return $this->hasMany(Edition::class, 'mark_id');
}
}
class Edition extends Model
{
protected $table = 'editions';
public function mark()
{
return $this->belongsTo(Mark::class);
}
}
Проблема в вызове связи на живую модель данных (сами связочные данные в таблицах присутствуют),
class MarksController extends Controller
{
public function show(Mark $mark)
{
dump($mark->name);
dd($mark->editions());
}
}
Хватаю:
Method Illuminate\Database\Query\Builder::editions does not exist.
Странно, например комментарии для статей по такому же принципу связи работают идеально.
Пробовал переименовывать метод связи - не помогло.
Например такая конструкция у меня работает:
Article::find(1)->comments()->create(['body'=>'haha','user_id'=>1])
Ааналогично:
Mark::find(1)->editions()->create(['name'=>AhAhAhA]);
Падает с аналогичной ошиибкой:
Method Illuminate\Database\Query\Builder::editions does not exist.
пробовал:
dd($mark->editions)
Ловлю
null
Мне в итоге надо получить:
$editions = $mark->editions()->orderBy('sort')->get();
На что я ловлю вышеуказанную ошибку.
Склоняюсь - что проблема в модели:
namespace App\Entity\Vehicle;
use App\Entity\Behaviors\ImagePublicBehavior;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
class Mark extends Model
{
....
Т.к. добавил сущность комментов для Марок, та же ошибка для:
$mark->comments()->create(['body' => 'xxx', 'user_id' => 1]);
dd($mark->comments());
Illuminate\Database\Query\Builder::comments does not exist.
В чем может быть проблема? Подскажите пожалуйста.