php - 在基本的 Laravel 5.4 教程中找不到类 'Task'

标签 php .htaccess laravel routes namespaces

首先,我完全是 Laravel 菜鸟,但我想学习它。我从 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 复制到我的根文件夹。

如有任何帮助,我们将不胜感激!

最佳答案

使用正确的命名空间

   /**
    * 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('/');
    });

关于php - 在基本的 Laravel 5.4 教程中找不到类 'Task',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42319407/

相关文章:

php - AJAX 不会响应 .htaccess 中的 POST php

html - 将特定 URL 重定向到 404

laravel - 如何在 Laravel 中的嵌套级别关系中按列排序并获取第一个排序依据?

php - 在 PHP 中打印多个反序列化数组

PHP OOP 数据库类 - 真的需要吗?

php css 如何根据成员更改名称颜色?

php - Laravel Eloquent - 检查返回的对象是否有效

apache - .htaccess mod_rewrite url 带有多个可选参数

mysql - Eloquent : "WHERE (equals statement) AND (LIKE statement)"

php - Laravel 5.2 View Composer 被多次执行