【问题标题】:I'm trying to show products related to the category. if I click this category i want to see related products to this category.?我正在尝试展示与该类别相关的产品。如果我单击此类别,我想查看与此类别相关的产品。?
【发布时间】:2019-12-11 18:28:01
【问题描述】:

我正在尝试展示与该类别相关的产品。在我的菜单中,我有一个类别列表,如果我单击此类别,我想查看与该类别相关的产品。我只是在学习 laravel 有人可以帮助我吗..

数据库

             category  id ,cate_name p_id

               product has -   cate_id   

产品型号

           class product extends Model
           {
            protected $fillable = [ 'id', 'product_name', 'product_price', 
           'product_image', 'product_brand'];
            }

类别模型

           class category extends Model
           {
            public $table = "category";
            public function childs()
            {
             return $this->hasMany('App\category','p_id');
               }
               }

html 视图

 <div class="nav-panel__nav-links nav-links">
 <ul class="nav-links__list">
 @foreach(App\category::with('childs')->where('p_id',0)->get()as $firstmenu)
 <li class="nav-links__item  nav-links__item--has-submenu">
 <a id="cate" class="nav-links__item-link" href="{{$firstmenu->cate_name}}">
  <div class="nav-links__item-body">
  {{$firstmenu->cate_name}}
   <svg class="nav-links__item-arrow" width="9px" height="6px">
  <use xlink:href="public/assets/images/sprite.svg#arrow-rounded-down-9x6"> 
  </use>
  </svg>
  </div>
  </a>
  <div class="nav-links__submenu nav-links__submenu--type--megamenu nav- 
   links__submenu--size--nl">
   <!-- .megamenu -->
   <div class="megamenu ">
   <div class="megamenu__body">
   <div class="row">
   @foreach($firstmenu->childs as $secondmenu)
    <div class="col-6">
    <ul class="megamenu__links megamenu__links--level--0">
    <li class="megamenu__item  megamenu__item--with-submenu ">
    <a href="">{{$secondmenu->cate_name}}</a>
    <ul class="megamenu__links megamenu__links--level--1">
     @foreach($secondmenu->childs as $thirdmenu)
     <li class="megamenu__item"><a href="">{{$thirdmenu->cate_name}}</a> 
     </li>
     @endforeach
     </ul>
     </li>
     </ul>
     </div>
     @endforeach
     </div>
     </div>
     </div>
     <!-- .megamenu / end -->
     </div>
     </li>
     @endforeach
     </ul>
      </div>

【问题讨论】:

  • 请修正缩进 - 还要解释你的代码发生了什么 - App\category::with('childs')-&gt;where('p_id',0)-&gt;get()
  • 另外请解释一下数据库结构
  • 这个问题已经在这里回答了,检查这个链接,可能对你有帮助-stackoverflow.com/questions/41523547/…
  • (品类表) id cate_name , p_id (产品表) id , product_name ,product_price , cate_id
  • 为什么要恢复固定缩进?您的代码很难按原样阅读,缩进是可读代码的重要组成部分

标签: laravel


【解决方案1】:

您的产品模型应如下所示:

class Product extends Model
{
    public $guarded = [];

    public function category(){
      return $this->belongsTo("App\Category", "category_id");
    }
}

这应该是您的类别模型“Category.php”:

class Category extends Model
{
    public $guarded = [];

    public function products(){

      return $this->hasMany("App\Product", "category_id");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多