首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数显示CRUD在Controller.php中不起作用

函数显示CRUD在Controller.php中不起作用
EN

Stack Overflow用户
提问于 2021-08-09 13:07:39
回答 2查看 99关注 0票数 0

我正在使用laravel 8进行CRUD。我尝试在控制器中使用create和store函数,它很好,然后数据将存储在数据库中。现在,我尝试使用show函数,一旦用户点击“show”按钮,我创建的数据就会显示给用户。我发现的最大错误是未定义的$product

这是我的index.blade刀片

代码语言:javascript
运行
复制
<a class="btn btn-info" href="show-index">Show</a>

这是我的show.blade.php刀片

代码语言:javascript
运行
复制
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2> Show Product</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="pro_index"> Back</a
</div>
</div>
</div>

<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Name:</strong>
{{ $product->name }}
</div>
 </div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
 <strong>Details:</strong>
{{ $product->detail }}
</div>
</div>
</div>

这是我的ProductController.php

代码语言:javascript
运行
复制
class ProductController extends Controller
{
 public function index()
 {
  $products = Product::all();
  return view('products.pro_index',compact('products'));
 }

 public function create()
 {
  return view('products.create');
 {

 public function store(Request $request)
 {
  $request->validate([
   'name' => 'required',
   'detail' => 'required',
  ]);

  $product= Product::create([
   'name' => $request->name,
   'detail' => $request->detail,
  ]);

  return redirect('/pro_index') ->with('success','Your record has been updated');
 }

 public function show (Product $product)
 {
  $product = Product::find($product);
  return view('products.show');
 }
}

这是我的web.php

代码语言:javascript
运行
复制
Route::get('/show-index', [App\Http\Controllers\ProductController::class, 'show'])->name('show');
EN

回答 2

Stack Overflow用户

发布于 2021-08-09 13:11:17

您不需要这行代码,因为您已经有了模型绑定

$product = Product::find($product);

票数 0
EN

Stack Overflow用户

发布于 2021-08-09 13:15:14

将锚点href从href="show-index"更改为href="{{ route('show', $product) }}

在控制器中

代码语言:javascript
运行
复制
public function show (Product $product)
{
  return view('products.show', compact('product'));
}

在web.php中

代码语言:javascript
运行
复制
Route::get('/show/{product}', [App\Http\Controllers\ProductController::class, 'show'])
->name('show');

更多信息:https://laravel.com/docs/8.x/routing#route-model-binding

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

https://stackoverflow.com/questions/68712600

复制
相关文章

相似问题

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