404 Нет ошибок, отображаемых в laravel, как я могу отладить / исправить этот маршрут обновления? - PullRequest
0 голосов
/ 15 февраля 2019

enter image description here

Я создал множество связей с моделью задач (множество задач для одной модели проекта) и настроил кнопку, чтобы сообщить, завершена ли задача.или нет (1 или 0).

Когда я нажимаю кнопку, чтобы обновить базу данных (как показано на рисунке), я получаю вместо этого 404 (см. Рис.) Вместо обычного экрана ошибок, который обычно выдает laravel, проверил логи, там нет ошибоклибо.

Я приложил код и сетевую ошибку, которая идет с 404, но я действительно не знаю, что я там ищу, если кто-то может указать мне правильное направление с ошибкой 404 или еслив приведенном ниже коде есть ошибка, я был бы очень признателен!

view

<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);
    }
}

1 Ответ

0 голосов
/ 15 февраля 2019

Удалите $ в вашем маршруте: '/ tasks / {$ task}'

Маршрут должен содержать только имя переменной в виде строки, поскольку он еще не введен в переменную.

...