مشکل attach در دسته بندی artticle

3 سال پیش
توسط مهدی آپدیت شد
milistudio ( 1120 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری

سلام ، وقتتون بخیر
بنده در دوره آموزشی ساخت یک وبسایت آموزشی (فروشگاهی) با لاراول که از راکت تهیه کردم ، برای ایجاد قسمت Category برای Article ها به این ارور برخوردم :

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category' in 'field list' (SQL: insert into articles (title, category, description, body, tags, images, user_id, slug, updated_at, created_at)

کلیه Request ها رو return میکنم : به این شکل نشون داده میشه ! http://uupload.ir/files/ji2l_category.png

اگر امکانش هست کمک کنید . ممنون

بهترین پاسخ انتخاب شده توسط milistudio
مهدی
3 سال پیش

خوب اشتباه کردی دیگه چرا category رو توی fillable گذاشتی ؟

دسته بندی ها جزیی از جدول articles نیست که قرارش بدی توی fillable از fillable پاکش کن حل میشه همه چی

مهدی ( 23172 تجربه )
3 سال پیش

یه سوال توی قسمت fillable مربوط به مدل article کلمه category رو احیانا قرار ندادی؟
کد مربوط به store رو اینجا قرار بده

milistudio ( 1120 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری

سلام مهدی جان . ممنون از پاسخگویی

در مورد fillable بنده Category رو قرار دادم :

protected $fillable = ['category' , 'title' , 'slug' , 'description' , 'body' , 'images' , 'tags'];

کد مربوط به store :

``` return $request->all();

    $imagesUrl = $this->uploadImages($request->file('images'));
    $article = auth()->user()->article()->create(array_merge($request->all() , [ 'images' => $imagesUrl]));
    $article->categories()->attach(request('category'));
    alert()->success('مقاله شما به درستی ایجاد شد !' , 'ثبت شد!')->autoclose(3500);
    return redirect(route('articles.index'));```
مهدی ( 23172 تجربه )
3 سال پیش

خوب اشتباه کردی دیگه چرا category رو توی fillable گذاشتی ؟

دسته بندی ها جزیی از جدول articles نیست که قرارش بدی توی fillable از fillable پاکش کن حل میشه همه چی

milistudio ( 1120 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری

مهدی جان طبق گفته شما جلو رفتم و category رو از fillable حذف کردم ، اما موقع ثبت اطلاعات به ارور زیر برخورد کردم :

"The file "C:\xampp\tmp\php1C83.tmp" does not exist"

اما زمانی که کد مربوط به attach کردن category رو حذف میکنم مشکل برطرف میشه ! این خط :

$article->categories()->attach(request('category'));

مهدی جان این تصویر رو هم ببین . Categorory یک آرایه برای من برمیگردونه که یکی از مقدار هاش 0 هستش ! میشه دلیلش رو بهم توضیح بدی ؟

http://uupload.ir/files/4xyg_array.png

milistudio ( 1120 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری

ممنون میشم یکی ازدوستان منو راهنمایی کنه :x

مهدی ( 23172 تجربه )
3 سال پیش

سلام جوابتو الان دیدم
تو اینجوری بنویس attach رو

    $article->categories()->sync($request->category);

اونی که صفر هستش اندیسه مقادیرها اگه دقت کنی 1 و 2 هستن توی اکثر زبانا اندیس آرایه از صفر شروع میشه

milistudio ( 1120 تجربه )
3 سال پیش
تخصص : طراح رابط کاربری

مهدی جان بسیار ممنونم . فرق sync و Attach تو چی هستش ؟

مهدی ( 23172 تجربه )
3 سال پیش

خواهش میکنم
مشکل تو توی سینک یا اتچ نبود مشکل این بود که نوشته بودی :

request('category')
$request->category

ولی sync فرقش اینه که اول هرچی از قبل هرچی attach شده رو detach میکنه و بعد از نو attach رو انجام میده

برای ارسال پاسخ باید وارد سایت شوید