نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

  1. #1

    مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

    سلام من دارم روی یک طراحی یک وبلاگ خیلی ساده کار می کنم.دو جدول به نام post و category دارم که فیلداش مثل زیر است:(این دو جدول رابطه many2many دارد)


    جدول post

    id:increment
    author:string
    .....



    جدول category
    id:increment
    title:string
    .....




    جدول category_post یا همون pivot table

    id:increment
    post_id:integer
    category_id:integer
    .....

    و کد مدل ها :

    post.php

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


    category.php


    public function post()
    {
    return $this->belongsToMany(post::class)
    }


    حالا می خوام همه پست های یک category خاص را بگیرم باید از چه کدی تو کنترلر و ویو استفاده کنم؟

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

    تیبل های پست و کتگوری اصلا به هم مرتبطس نیستن به شکل مستقیم که شما براشن رابطه نوشتی
    شما باید اول تیبل post رو وصل کنی به تیبل category_post و بعد category_post رو وصل کنی به category

    توی مدل post

        function CategoryPost(){
    return $this->hasMany('App\CategoryPost');
    }


    بعد کوئریش میشه


    $category_ids = [1,2,3];
    Post::whereHas('CategoryPost' , function($q) use ($category_ids) {
    return $q->whereIn('category_id' , $category_ids );
    })-get();


  3. #3

    نقل قول: مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    تیبل های پست و کتگوری اصلا به هم مرتبطس نیستن به شکل مستقیم که شما براشن رابطه نوشتی
    شما باید اول تیبل post رو وصل کنی به تیبل category_post و بعد category_post رو وصل کنی به category

    توی مدل post

        function CategoryPost(){
    return $this->hasMany('App\CategoryPost');
    }


    بعد کوئریش میشه


    $category_ids = [1,2,3];
    Post::whereHas('CategoryPost' , function($q) use ($category_ids) {
    return $q->whereIn('category_id' , $category_ids );
    })-get();

    ببین کدی که من نوشتم مشکلی نداره و تو tinker به درستی جواب می ده. چون لاراول یک سری قرارداد داره که نیازی نیست به طور صریح جداول رو به هم مرتبط کنی(تو رابطه های many2may) .در ضمن من تو مدل post رابطه تعریف کردم دیگه!.



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


    من کد زیر رو تو کنترلر نوشتم:



    public function show($cat)
    {
    $category=category::with('posts')->where('title','=','پادکست')->get();

    return view('Posts.show',compact('category'));

    }

    با کد زیر تو ویو می خوام از طریق رابطه ای که category با post داره، عنوان پست به علاوه عنوان دسته بندی پست و نویسنده و ..و را مثل زیر نمایش بدم:



    @foreach($category as $cat)
    <p>{{$cat->posts->title}}
    @endforeach

    اما موقع اجرا میگه که title رو نمیشناسم

  4. #4

    نقل قول: مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

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

    باید از دوتا حلقه استفاده کنیم:


    @foreach($category as $cat)
    @foreach($cat->posts as $post)
    {{ $post->title }}
    @endforeach
    @endforeach


  5. #5

    نقل قول: مشاهده همه پست های مربوط به یک category خاص با Eloquent در لاراول

    راه حلتون درسته اما بهتره این چیزارو داخل ویو استفاده نکنین و در کل کوئری هارو داخل همون کنترلر بزنین. این راه حل یه مقدار deprecated هست

تاپیک های مشابه

  1. سوال: نمایش پست های مربوط به یک دسته بندی ...
    نوشته شده توسط thacker در بخش PHP
    پاسخ: 6
    آخرین پست: دوشنبه 05 آبان 1393, 11:50 صبح
  2. سوال درباره use case های مربوط به یک شرکت فنی و آموزشی
    نوشته شده توسط a_123123123123 در بخش تحلیل و طراحی نرم افزار
    پاسخ: 1
    آخرین پست: دوشنبه 16 خرداد 1390, 23:49 عصر
  3. پاسخ: 8
    آخرین پست: دوشنبه 17 آبان 1389, 23:35 عصر
  4. سوال: نمایش تمام شماره های مربوط به یک نفر
    نوشته شده توسط e_r_shafiee در بخش Access
    پاسخ: 6
    آخرین پست: چهارشنبه 04 شهریور 1388, 12:44 عصر
  5. پیدا نمودن Component های مربوط به یک فرم
    نوشته شده توسط shayan_re در بخش C#‎‎
    پاسخ: 16
    آخرین پست: یک شنبه 25 اردیبهشت 1384, 16:57 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •