Какой класс нужно подключить, что бы нашёлся метод attach? PHP: public function store(Request $request) { $article = Article::create($request->all()); if($request->input('categories')): $article->categories()->attach($request->input('categories')); endif; return redirect()->route('admin.article.index'); } PHP: public function categories() { return $this->morphMany('App\Category', 'categoryable'); } Это не работает PHP: use Illuminate\Database\Eloquent\Model; Call to undefined method Illuminate\Database\Query\Builder::attach()
@Zuldek PHP: <?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; class Article extends Model { protected $fillable = ['title', 'slug', 'description_short', 'description', 'image', 'image_show', 'meta_title', 'meta_description', 'meta_keyword', 'published', 'created_by', 'modified_by']; public function categories() { return $this->morphMany('App\Category', 'categoryable'); } public function setSlugAttribute($value) { $this->attributes['slug'] = Str::slug( mb_substr($this->title, 0, 40) . "-" . \Carbon\Carbon::now()->format('dmyHi'), '-'); } } --- Добавлено --- @Zuldek App\Article
@romach PHP: <?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; class Category extends Model { protected $fillable = ['title', 'slug', 'parent_id', 'published', 'created_by', 'modified_by']; // Mutators public function setSlugAttribute($value) { $this->attributes['slug'] = Str::slug( mb_substr($this->title, 0, 40) . "-" . \Carbon\Carbon::now()->format('dmyHi'), '-'); } public function children() { return $this->hasMany(self::class, 'parent_id'); } }
Я не очень часто с lara общаюсь но вроде чтобы attach испольовать нужно чтобы ф-ия возвращала BelongsToMany, попробуй заменить `morphMany` на `MorphToMany`, которая от нужного класса наследуется