【发布时间】:2018-09-25 07:25:53
【问题描述】:
我有一个名为 RankController.php 的控制器。当我想分离一些方法时,我手动重命名UsersController.php。然后我选择将其重命名为RankController.php。注意:我只改文件名,不改类名。这是控制器的代码。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
use App\User;
use App\Rank;
use App\Ban;
class RankController extends Controller
{
// Constructor function
public function __construct()
{
// Check if user is logged in
$this->middleware('auth');
}
public function search(Request $request)
{
$this->validate($request, ['search' => 'required', ]);
$users = User::select('id', 'name')->where([
['name', '!=', Auth()->user()->name],
['name', 'like', "%" . $request->input('search') . "%"],
])->paginate(10);
return view('rank.search')
->with('users', $users);
}
}
这里是我调用控制器的地方:
{!! Form::open(['action' => ['RankController@search'], 'method' => 'POST']) !!}
{{Form::text('search', '', ['placeholder' => 'Search a user'])}}
{{Form::submit('Search', ['class' => 'btn btn-primary'])}}
{!! Form::close() !!}
注意:这是我收到错误的单个文件。 这是错误:Action App\Http\Controllers\RankController@search 未定义。 (查看:/var/www/htdocs/Proiect/resources/views/layouts/app.blade.php)(查看:/var/www/htdocs/Proiect/resources/views/layouts/app.blade.php)
我在其他电脑上尝试了代码,它产生了同样的错误。
【问题讨论】:
-
你更新了“UsersController”的路由了吗?
-
如果您更改文件名,您还需要更改类名。 autoloading standard 通过使用目录和文件名来表示命名空间和类。如果您的文件名与您的类不同,则无法自动加载。
-
@Pratik 是问题所在,我现在改回来了,谢谢。
-
如果这个问题已经解决或者发布/接受答案,您能否关闭/删除这个问题?谢谢
标签: php laravel laravel-5.6 laravel-controller