php - 我需要将我的数据从数据库加载到我的电子商务索引页面。管理部分非常好。但是我的用户出现了错误
问题描述
我创建了两个资源控制器,一个用于管理员,另一个用于用户。
我得到了错误,
Illuminate\Contracts\Container\BindingResolutionException 目标类 [App\Http\Controllers\ProductsController] 不存在。
我的代码有什么问题?
这是我的 Admin\ProductsController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Product;
use App\Category;
class ProductsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$arr['products'] = Product::all();
return view('admin.products.index')->with($arr);
}
public function create()
{
return view('admin.products.create');
}
public function store(Request $request, Product $product)
{
if($request->prod_image_path->getClientOriginalName())
{
$ext =$request->prod_image_path->getClientOriginalName();
$file = date('YmdHis').rand(1,99999).'.'.$ext;
$request->prod_image_path->storeAs('public/admin',$file);
}else{
$file ='';
}
$product-> prod_name = $request-> prod_name;
$product-> prod_meta_title = $request-> prod_meta_title;
$product-> prod_description = $request-> prod_description;
$product-> prod_category = $request-> prod_category;
$product-> prod_price = $request-> prod_price;
$product-> prod_discount = $request-> prod_discount;
$product-> prod_image_path = $file;
$product->save();
return redirect()->route('admin.products.index');
}
public function show($id)
{
// $product = Product::find($id);
// return view ('user.show',['product'=>$product]);
}
public function edit(Product $product)
{
$arr['product'] = $product;
return view('admin.products.edit')->with($arr);
}
public function update(Request $request, Product $product)
{
if($request->prod_image_path->getClientOriginalName())
{
$ext =$request->prod_image_path->getClientOriginalName();
$file = date('YmdHis').rand(1,99999).'.'.$ext;
$request->prod_image_path->storeAs('public/admin',$file);
}else{
$file ='';
}
$product-> prod_name = $request-> prod_name;
$product-> prod_meta_title = $request-> prod_meta_title;
$product-> prod_description = $request-> prod_description;
$product-> prod_category = $request-> prod_category;
$product-> prod_price = $request-> prod_price;
$product-> prod_discount = $request-> prod_discount;
$product-> prod_image_path = $file;
$product->save();
return redirect()->route('admin.products.index');
}
public function destroy($id)
{
Product:: destroy($id);
return redirect()->route('admin.products.index');
}
}
这是用户的 ProductsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;
class ProdutsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$products = Product::get();
return view ('index')->with(compact('products'));
}
public function create()
{
}
public function store(Request $request, Product $product)
{
}
public function show($id)
{
//
}
public function edit(Product $product)
{
}
public function update(Request $request, Product $product)
{
}
public function destroy($id)
{
}
}
这是我的路线。
网页.php
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/admin/index', 'ProductsController@index')->name('list_products');
Route::get('/admin', 'HomeController@test')->name('admin');
Route::resource('/admin/products', 'Admin\ProductsController', ['as'=>'admin']);
Route::resource('/index', 'ProductsController');
这是我的 index.blade.php
@foreach($products as $p)
<a href="../shop/product-categories-7-column-full-width.html" class="d-block py-2 text-center">
<img class="img-fluid mb-1 max-width-100-sm" src="{{ asset('assets/img/300X300/img6.jpg')}}" alt="Image Description">
<h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_name'] }}</h6>
<h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_price'] }}</h6>
</a>
</li>
@endforeach
解决方案
我认为您的用户ProductController控制器名称中有错字。
您的实际班级名称是:ProdutsController
但 Laravel 正在寻找ProductsController
推荐阅读
- javascript - 在 Firefox v.68 中禁用跨域网络安全
- java - 尝试将控制台输出保存在文本文件中时出现 NullPointerException
- android - 在 Exoplayer Android 中跳过丢失的片段
- css - `Text-overflow: ellipsis` 用于 flex 列的两个项目,在 flex 行内
- amazon-web-services - boto3 在 SNS 中发布消息
- javascript - React bootstrap 下拉菜单无法读取属性“项目”
- sumo - flow/tutorials/tutorial09_environments.ipynb的“rl_actions”是什么意思
- google-cloud-platform - 在并行模式下获取 gsutil cp 命令的状态
- python - 如何解码这个小端(int32)消息?
- php - 从移动登录表单发布到桌面页面并返回信息