首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel中将数据从控制器传递到视图

如何在Laravel中将数据从控制器传递到视图
EN

Stack Overflow用户
提问于 2021-06-14 08:25:25
回答 1查看 104关注 0票数 0

请帮帮我。我有这三个表,而且我在如何基于restaurant id (从Controllerview )的基础上调用Controller有问题。提前谢谢你。

items

categories

restorant

这是我的Controller

代码语言:javascript
运行
复制
public function index()
{

    if (auth()->user()->hasRole('owner')) {
        $items = Items::with('category')->get();
        $restorant_id = auth()->user()->restorant->id;
        $category = Categories::where(['restorant_id' => $restorant_id]);
    }

    return view('point-of-sale::index', [
        'category' => $category,
        'items' => $items,
    ]);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-14 09:41:43

如果将get()添加到$category = Categories::where(['restorant_id' => $restorant_id]);语句的末尾,将返回一个雄辩的集合:

代码语言:javascript
运行
复制
$category = Categories::where(['restorant_id' => $restorant_id])->get();

按照当前的情况将$category变量传递给您的视图,考虑将它重命名为$categories,不过只是为了推断可能存在多个变量。

然后,在您的view中,您可以遍历Category结果并访问name属性:

代码语言:javascript
运行
复制
@forelse ($category as $cat)
  {{ $cat->name }}
@empty
  No categories.
@endforelse

更新

如果您想通过他们的items获得category_id,您可以按照您对$categories所做的那样做

代码语言:javascript
运行
复制
$items = Items::where(['category_id' => $category_id])->get();

或者,如果在您的items模型上有一个Categories关系,您可以这样访问它们:

代码语言:javascript
运行
复制
$category = Categories::with('items')
    ->where(['restorant_id' => $restorant_id])
    ->get();

上面的内容将急切地加载与items相关的category,然后您可以在视图中访问该category,例如:

代码语言:javascript
运行
复制
@forelse ($category as $cat)
  {{ $cat->name }}

  @foreach ($cat->items as $item)
    {{ $item->name }}
  @endforeach

@empty
  No categories.
@endforelse
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67967048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档