مهدی یار
3 سال پیش توسط مهدی یار مطرح شد
3 پاسخ

مشکل در روابط چند به چند در لاراول

سلام
من اومدم و برای ایجاد روابط چند به چند بین دو تیبل دسته‌بندی ها و مقالات ماگریشین ها رو انجام دادم و مدل ها را ساختم و این دو فانکشن رو در مدل های Article و Category گذاشتم :

در Articles :

    public function categories()
    {
        return $this->belongsToMany(Category::class);
    }

در Category

    public function articles()
    {
        return $this->belongsToMany(Article::class);
    }

و هنگام ثبت مقاله جدید به این شکل عمل کردم :

    public function store(Request $request)
    {
        $article = new Article();
        $article->create($request->all());
        $article->categories()->attach($request->categories);
        return redirect()->route('admin.articles');
    }

خب هنگام ثبت اطلاعات مقاله با موفقیت ثبت می شود ولی در جدول article_category که برای ارتباطات است چیزی ثبت نمی‌شود و با ارور زیر مواجه میشم :

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'article_id' cannot be null (SQL: insert into `article_category` (`article_id`, `category_id`) values (?, 6), (?, 7))

مثل اینکه مقدار اول نال هست ولی نمیدونم چطوری باید برطرف کنم

ممنون میشم کمک کنید

جدول article_category هم حاوی سه فیلد article_id و category_id و id هست


ثبت پرسش جدید
سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

سلام
این رو تست کنید.

$article = Article::create($request->all());
$article->categories()->attach($request->categories);

@manyam.l.t57


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام.
فانکشن رو به صورت زیر بنویسید.

public function store(Request $request)
{
    $data = $request->all();
    $article = Article::create(
        $data
    );

    $article->categories()->attach($data['categories']);
    return redirect()->route('admin.articles');
}

مهدی یار
@manyam.l.t57 3 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام