这个答案并没有解决我的问题Route::controllers - Method [index] does not exist on [App\Http\Controllers
在web.php中
Route::prefix('admin')->group(function () {
Route::resource('post', 'admin\PostsController');
});
在app / Http / Controllers / admin中
我有PostsController.php
包含
<?php
namespace App\Http\Controllers\admin;
use App\Model\Post;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$posts = \App\Post::all();
return view('admin.posts',['posts'=>$posts]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
//
$post = new Post;
$post->content = $request->input('descr');
$post->save();
}
当我转到此网址http://127.0.0.1:8000/admin/post
时我收到以下错误
BadMethodCallException方法[index]不存在 [应用\ HTTP \控制器\管理员\ PostsController]。
call_user_func_array
…
/vendor/laravel/framework/src/Illuminate/Routing/Controller.php 56
public function callAction($method, $parameters)
{
print_r($this);
echo $method;die();
return call_user_func_array([$this, $method], $parameters);
}
//输出
App\Http\Controllers\admin\PostsController Object ( [middleware:protected] => Array ( ) ) index
php artisan打印以下内容
php artisan route:list
| | GET|HEAD | admin/post | post.index | App\Http\Controllers\admin\PostsController@index | web
答案 0 :(得分:1)
使用laravel版本5.4,我运行了这个命令
<div id="id2">aw</div>
在web.php路由文件中添加了这个
php artisan make:controller admin/PostsController --resource
控制器文件
Route::prefix('admin')->group(function () {
Route::resource('post', 'admin\PostsController');
});
对我来说很好用
答案 1 :(得分:0)
也许您的控制器中有模棱两可的类,这意味着您在不同的控制器中可能具有相同的类名。要解决该问题,请运行以下命令
1. composer update
2. composer dumpautoload
3. php artisan config:cache
4. php artisan view:clear
确保 composer更新成功运行且没有错误。如果控制台中提到错误,请更正所有错误,使其在代码库中发生的地方。