Php Larvel:方法[index]在[App\Http\Controllers\admin\PostsController]上不存在

Php Larvel:方法[index]在[App\Http\Controllers\admin\PostsController]上不存在,php,laravel,Php,Laravel,这个答案解决不了我的问题 在web.php中 Route::prefix('admin')->group(function () { Route::resource('post', 'admin\PostsController'); }); 应用程序内/Http/Controllers/admin 我有PostsController.php 其中包含 <?php namespace App\Http\Controllers\admin; use App\Model\Po

这个答案解决不了我的问题

在web.php中

Route::prefix('admin')->group(function () {
    Route::resource('post', 'admin\PostsController');
});
应用程序内/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();
    }
//印刷品

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

使用laravel 5.4版,我运行了以下命令

php artisan make:controller admin/PostsController--resource

在web.php路由文件中添加了以下内容

Route::prefix('admin')->组(函数(){
路由::资源('post','admin\PostsController');
});

控制器文件

namespace App\Http\Controllers\admin;
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()
  {
    echo "call to index";
  }
  ........
   other functions

}
对我来说很好


使用laravel 5.4版,我运行了以下命令

php artisan make:controller admin/PostsController--resource

在web.php路由文件中添加了以下内容

Route::prefix('admin')->组(函数(){
路由::资源('post','admin\PostsController');
});

控制器文件

namespace App\Http\Controllers\admin;
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()
  {
    echo "call to index";
  }
  ........
   other functions

}
对我来说很好


可能您的控制器中有不明确的类,这意味着您可能在不同的控制器中有相同的类名。要解决该问题,请运行以下命令

 1. composer update 
 2. composer dumpautoload
 3. php artisan config:cache
 4. php artisan view:clear

确保composer update在没有错误的情况下成功运行。如果控制台中提到错误,请更正代码库中出现的所有错误。

可能控制器中的类不明确,这意味着不同控制器中可能有相同的类名。要解决该问题,请运行以下命令

 1. composer update 
 2. composer dumpautoload
 3. php artisan config:cache
 4. php artisan view:clear

确保composer update在没有错误的情况下成功运行。如果控制台中提到了错误,请更正代码库中出现的所有错误。

尝试访问
帖子
@MASh-Dou希望我尝试而不是获取未找到页面的错误是。试试这个。@MASh I get page not found error从
Route::resource('post','admin\PostsController')重写这一行
路由::资源('posts','admin\PostsController')
然后尝试访问
admin/posts
尝试访问
posts
@MASh-Dou要我尝试而不是我获取页面未找到错误是。试试这个。@MASh I get page not found error从
Route::resource('post','admin\PostsController')重写这一行
路由::资源('posts','admin\PostsController')
然后尝试访问
admin/posts
谢谢!很显然,我花了几个小时调试我的路线和控制器出了什么问题,最后发现我已将一个控制器重命名为
ControllerOld
,但
controller
类名仍存在于旧控制器中,因此
controller
与旧控制器中定义的类名冲突,因此出现此异常!祝你圣诞快乐!很显然,我花了几个小时调试我的路线和控制器出了什么问题,最后发现我已将一个控制器重命名为
ControllerOld
,但
controller
类名仍存在于旧控制器中,因此
controller
与旧控制器中定义的类名冲突,因此出现此异常!快乐编码