Class laravel 5.7 中不存在反射异常错误
Class does not exist reflection exception error in laravel 5.7
我的api.php
Route::get('getProducts' , 'ProductController@getProducts');
ProductController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Services\ProductService;
class ProductController extends Controller
{
private $productService;
public function __construct(ProductService $productService){
$this->productService = $productService;
}
public function getProducts(){
return $this->productService->get_products();
}
public function addProduct(Request $request){
$all_data = array(
'product_name' => $request['product_name'],
'product_code' => $request['product_code'],
'category_id' => $request['category_id'],
'sub_category_id' => $request['sub_category_id'],
'unit' => $request['unit']
);
return $this->productService->create_product($all_data);
}
}
ProductService.php
namespace App\Http\Services;
use App\Http\Repositories\ProductRepositary;
class ProductService
{
protected $productRepositary;
public function __construct(ProductRepositary $productRepositary){
$this->productRepositary = $productRepositary;
}
public function get_products(){
return $this->productRepositary->get_products();
}
public function create_product($data){
return $this->productRepositary->create_new_product($data);
}
}
ProductRepositary.php
<?php
namespace App\Http\Repositories;
use App\Product;
/**
*
*/
Class ProductRepositary
{
public function getModel(){
return new Product;
}
public function get_products(){
$all_data = $this->getModel()->all();
return $all_data;
}
public function create_new_product($data){
$created = $this->getModel()->firstOrCreate($data)
return $created;
}
}
一切看起来都很好,我不知道我错过了什么
但我收到了这个错误
Class App\Http\Repositories\ProductRepositary 不存在
我试过了
- 作曲家dump-autoload
- php artisan config:cache
- php artisan cache:clear
- php artisan optimize:clear
文件在正确的目录中
- app/Http/Repositories/ProductRepositary.php
一切正常,但仍然存在错误,有没有人遇到同样的问题,您找到的解决方案是什么?
给负分前,请提供解决方案并给负分
我认为 create_new_product
函数中的 ProductRepositary
class 存在语法错误。你在那里漏掉了分号,所以添加分号。
public function create_new_product($data){
$created = $this->getModel()->firstOrCreate($data); // Here you have missed semicolon
return $created;
}
希望您能理解。
我的api.php
Route::get('getProducts' , 'ProductController@getProducts');
ProductController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Services\ProductService;
class ProductController extends Controller
{
private $productService;
public function __construct(ProductService $productService){
$this->productService = $productService;
}
public function getProducts(){
return $this->productService->get_products();
}
public function addProduct(Request $request){
$all_data = array(
'product_name' => $request['product_name'],
'product_code' => $request['product_code'],
'category_id' => $request['category_id'],
'sub_category_id' => $request['sub_category_id'],
'unit' => $request['unit']
);
return $this->productService->create_product($all_data);
}
}
ProductService.php
namespace App\Http\Services;
use App\Http\Repositories\ProductRepositary;
class ProductService
{
protected $productRepositary;
public function __construct(ProductRepositary $productRepositary){
$this->productRepositary = $productRepositary;
}
public function get_products(){
return $this->productRepositary->get_products();
}
public function create_product($data){
return $this->productRepositary->create_new_product($data);
}
}
ProductRepositary.php
<?php
namespace App\Http\Repositories;
use App\Product;
/**
*
*/
Class ProductRepositary
{
public function getModel(){
return new Product;
}
public function get_products(){
$all_data = $this->getModel()->all();
return $all_data;
}
public function create_new_product($data){
$created = $this->getModel()->firstOrCreate($data)
return $created;
}
}
一切看起来都很好,我不知道我错过了什么 但我收到了这个错误 Class App\Http\Repositories\ProductRepositary 不存在 我试过了
- 作曲家dump-autoload
- php artisan config:cache
- php artisan cache:clear
- php artisan optimize:clear
文件在正确的目录中
- app/Http/Repositories/ProductRepositary.php
一切正常,但仍然存在错误,有没有人遇到同样的问题,您找到的解决方案是什么?
给负分前,请提供解决方案并给负分
我认为 create_new_product
函数中的 ProductRepositary
class 存在语法错误。你在那里漏掉了分号,所以添加分号。
public function create_new_product($data){
$created = $this->getModel()->firstOrCreate($data); // Here you have missed semicolon
return $created;
}
希望您能理解。