【问题标题】:404 no errors displaying in laravel, how can I debug this/fix this update route?404 在 laravel 中没有显示错误,我该如何调试/修复此更新路线?
【发布时间】:2019-07-09 00:17:15
【问题描述】:

我已经创建了一个与任务模型有很多关系(许多任务到 1 个项目模型),并设置了一个按钮来说明任务是否已完成(1 或 0)。

当我单击按钮更新数据库时(如视图所示),我收到了这个 404(见图)而不是 laravel 通常抛出的通常错误屏幕,检查日志也没有错误。

我已附上 404 附带的代码和网络错误,但我真的不知道我在寻找什么下面的代码,我将不胜感激!

查看

<form method="POST" action="/tasks/{{ $task->id }}">

                @method('PATCH')

                @csrf

                <label for="completed">

                    <input type="checkbox" name="completed" onChange="this.form.submit()">

                    {{ $task->description }}

                </label>

            </form>

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Task;

class ProjectTasksController extends Controller
{
    public function update()
    {
        dd('foo');
    }
}

路线

Route::patch('/tasks/{$task}', 'ProjectTasksController@update');

迁移

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTasksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->increments('id');

            $table->unsignedInteger('project_id');

            $table->string('description');

            $table->boolean('completed')->default(false);

            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('tasks');
    }
}

型号

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    protected $fillable = [
        'project_id', 'description', 'completed'
    ];

    public function project()
    {
        return $this->belongsTo(Project::class);
    }
}

【问题讨论】:

  • 我注意到没有人真正回答您的主要问题 - 如何在 Laravel 中调试 404 和一般视图 - 我越来越发现这几乎是不可能的。这可能是我最后一次使用 Laravel。

标签: php laravel http-status-code-404 laravel-routing


【解决方案1】:

删除路由中的 $:'/tasks/{$task}'

路由应该只包含字符串形式的变量名,因为它还没有类型提示到变量中。

【讨论】:

  • 天啊 2 小时我已经为此发疯了...我爱你哈哈。泰!
猜你喜欢
  • 2018-10-04
  • 2022-01-16
  • 2012-08-01
  • 2018-10-23
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多