【问题标题】:LARAVEL - Show products to related categoryLARAVEL - 将产品显示到相关类别
【发布时间】:2017-05-02 18:16:12
【问题描述】:

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

数据库:

 -categories: ID, NAME
 -products: has Category_id

查看

Route::get('/category' , [
    'uses' => 'productController@getCategory',
    'as' => 'category.single'
    ]);

控制器

public function getCategory($category) {
    $singleCategory = Category::find($category);
    return view('pages.category', ['category' => $singleCategory]);
}

我该怎么走?

【问题讨论】:

  • 我从这里怎么走?的意思是?

标签: php laravel


【解决方案1】:

在 Category.php 模型中添加一个关系

public function products()
{
  return $this->hasMany('App\Product');
}

那你就可以打电话了

$singleCategory->products

您将按 category_id 获得产品

【讨论】:

    【解决方案2】:

    按照以下几行:

    $singleCategory = Category::find($category);
    return view('pages.category', ['category' => $singleCategory]);
    

    category 列表位于pages.category 页面$category 下。它是一个 Collection 对象,你可以通过 foreach() 循环访问它的对象。

    【讨论】:

      【解决方案3】:

      我该怎么走?

      我不知道。

      但是对于您的问题,如果您想获得某个类别的产品,请执行以下操作:

      $singleCategory = Category::find($category);
      $products = $singleCategory->products;
      

      (我假设您在 Category 模型中添加了 products 方法,如果没有,请阅读:https://laravel.com/docs/5.4/eloquent-relationships#one-to-many)。

      然后您可以通过循环显示您的产品:

      foreach($products as $product) { 
           echo $product->name; 
      }
      

      【讨论】:

      • 是的,我理解,但我认为我的视图或控制器一定有问题尝试获取非对象的属性(视图:....\resources\views\pages\product.blade.php )
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多