首先,我是一个完整的Laravel noob,但我想学习它。我从https://laravel.com/docs/5.2/quickstart的教程开始,但安装了5.4。这就是它出错的地方,因为与Laravel的5.2版本相比,路线的位置是不同的,本教程是基于。所以在我的根文件夹中,我有/ routes并在/routes/web.php中添加了教程代码:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/**
* Show Task Dashboard
*/
Route::get('/', function () {
$tasks = Task::orderBy('created_at', 'asc')->get();
return view('tasks', [
'tasks' => $tasks
]);
});
/**
* Add New Task
*/
Route::post('/task', function (Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
]);
if ($validator->fails()) {
return redirect('/')
->withInput()
->withErrors($validator);
}
$task = new Task;
$task->name = $request->name;
$task->save();
return redirect('/');
});
/**
* Delete Task
*/
Route::delete('/task/{task}', function (Task $task) {
$task->delete();
return redirect('/');
});
?>
我已经创建了一个app / Task.php,其中包含(空)Task类,据我所知,我的数据库设置正确。
FatalErrorException in web.php line 21:
Class 'Task' not found
但是,我收到了上述错误,表示我的命名空间有问题,但我似乎无法做到正确。
顺便说一句,为了让安装正常工作,我在我的根文件夹中将server.php重命名为index.php,并将.htaccess从/ public复制到我的根文件夹。
任何帮助将不胜感激!
答案 0 :(得分:6)
使用正确的命名空间
/**
* Show Task Dashboard
*/
Route::get('/', function () {
$tasks = \App\Task::orderBy('created_at', 'asc')->get();
return view('tasks', [
'tasks' => $tasks
]);
});
/**
* Add New Task
*/
Route::post('/task', function (Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
]);
if ($validator->fails()) {
return redirect('/')
->withInput()
->withErrors($validator);
}
$task = new \App\Task;
$task->name = $request->name;
$task->save();
return redirect('/');
});
/**
* Delete Task
*/
Route::delete('/task/{task}', function (\App\Task $task) {
$task->delete();
return redirect('/');
});