【发布时间】:2021-04-20 07:46:59
【问题描述】:
我正在尝试将一些数据发送到刀片文件,但我没有得到任何东西,它只是返回到页面 不显示消息。
这是我的控制器代码
public function missingProducts(Category $category)
{
$oldProducts = Product::where('category', $category->id)->get();
$newProducts = Product::where('category', request('category'))->get();
$oldArr = [];
foreach($oldProducts as $oldProduct)
{
$oldArr[] = $oldProduct->name;
}
$newArr = [];
foreach($newProducts as $newProduct)
{
$newArr[] = $newProduct->name;
}
$missingProducts = array_diff($oldArr, $newArr);
if(!empty($missingProducts))
{
return redirect()->route('admin.category', ['category' => $category->id])
->with(['missingProducts' => $missingProducts]);
}else{
dd('there is NO products missing');
}
}
我的刀片文件
@if(!empty($missingProducts))
<div class="alert alert-success">
We are missing products
</div>
@endif
【问题讨论】:
-
你的控制器唯一能做的就是返回一个重定向或死掉,所以这里没有涉及到视图......如果你想重定向到另一个页面,那么数据将在会话中,不是视图数据laravel.com/docs/8.x/… 的一部分,它将向您展示闪现的会话数据如何工作以及如何在视图中访问它
-
另外,为刀片视图提供的数据可以(并且应该)写成
return redirect()->route('admin.category', ['category' => $category->id, 'missingProducts' => $missingProducts]),甚至更好的是return redirect()->route('admin.category', compact('category', 'missingProducts'));。 -
@Tpojka 似乎应该刷新会话数据而不是请求的输入,至少是
missingProducts部分......然后他们的这种方法本身似乎很奇怪 -
@lagbox 你说的很对。我实际上是指
view()helper,并没有以最佳方式阅读问题。我会继续发表评论,让您的评论更有意义。 :D