我已经设置Laravel 6项目,但由于某种原因,当php工匠路由:列表返回目标类[App\Sys\Http\Controller\Api\LocationController]不存在。我是新来的Laravel,我不明白为什么控制器不工作。有人能帮帮我吗?
这是我的代码:
位置控制器。php
<?php
namespace App\Http\Controllers\Api;
//use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Location;
class LocationController extends Controller
{
public function index(Request $request)
{
$per_page = $request->per_page ? $request->per_page : 5;
$sort_by = $request->sort_by;
$order_by = $request->order_by;
return response()->json(['locations' => Location::orderBy($sort_by, $order_by)->paginate($per_page)],200);
}
public function store(Request $request)
{
$location= Location::create([
'code' =>$request->code,
'name' =>$request->name,
'description' =>$request->description
]);
return response()->json(['location'=>$location],200);
}
public function show($id)
{
$locations = Location::where('code','LIKE', "%$id%")->orWhere('name','LIKE', "%$id%")->orWhere('description', 'LIKE', "%$id%")->paginate();
return response()->json(['locations' => $locations],200);
}
public function update(Request $request, $id)
{
$location = Location::find($id);
$location->code = $request->code;
$location->name = $request->name;
$location->description = $request->description;
$location->save();
return response()->json(['location'=>$location], 200);
}
public function destroy($id)
{
$location = Location::where('id', $id)->delete();
return response()->json(['location'=>$location],200);
}
public function deleteAll(Request $request){
Location::whereIn('id', $request->locations)->delete();
return response()->json(['message', 'Records Deleted Successfully'], 200);
}
}
我的路由文件:
api.php
<?php
use Illuminate\Http\Request;
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::namespace('App\Sys\Http\Controllers')->group(function () {
Route::get('/menuslevel0',['uses' => 'MenuController@menus_level_0']);
Route::resource('locations','Api\LocationController');
});
您的控制器位于App\Http\Controllers\Api
中,您的路由指向App\Sys\Http\Controllers\Api
。
您必须更改:
Route::namespace('App\Sys\Http\Controllers')->group(function () {
// Your routes
});
致:
Route::namespace('App\Http\Controllers')->group(function () {
// Your routes
});
你的控制器在App\Http\Controller\Api
中,而不是在App\Sys\Http\Controller
命名空间中。删除命名空间App\Sys\Http\Controller
组中的位置资源路由,并创建一个新的。
这样做
...
Route::namespace('App\Sys\Http\Controllers')->group(function () {
Route::get('/menuslevel0',['uses' => 'MenuController@menus_level_0']);
});
Route::namespace('App\Http\Controllers')->group(function () {
Route::resource('locations','Api\LocationController');
});
...
我正在使用Laravel 6.0,我尝试使用列出我的所有路线,但失败并返回: 照明\合同\容器\BindingResolutionExc0019:目标类[App\Http\Controller\SessionsController]不存在。 at/home/vagrant/code/vendor/laravel/framework/src/illumb/Container/Container.ph
当我通过命令“php artisan make:controller Admin\ControllerLanguages”创建名为“Admin”的控制器内部文件夹时 并发送出现此错误的页面: 方法App\Http\Controllers\LanguagesController::index不存在。错误的方法调用是指App\Http\Controllers\LanguagesController::
我得到这个错误: Illumb\Contracts\Container\BindingResolutionException目标类[App\Http\Controllers\UserManagementController]不存在。 我想问题出在我的web.php路径上:
我正在尝试在我的注册控制器中注册多用户,并使用以下代码进行检查。但它告诉我一个错误: 方法App\Http\Controllers\Auth\RegisterController::validator不存在。
使用php artisan route:list后,我在Laravel 8中遇到此错误: Illumb\Contracts\Container\BindingResolutionException目标类[Api\UserController]不存在。 我在App\Http\Controllers\Api中有一个控制器: 路线/api.php: 我是新来的
我有一个类调用VSE,其中有50多个函数。 我想列出所有这些函数。 我试过了 我一直得到 我做错了什么?