Я создал множество связей с моделью задач (множество задач для одной модели проекта) и настроил кнопку, чтобы сообщить, завершена ли задача.или нет (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);
}
}