首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义路由[tasks.complete]。(查看: /Users/pathparakh/Projects/task/resources/views/tasks/index.blade.php)

问未定义路由[tasks.complete]。(查看: /Users/pathparakh/Projects/task/resources/views/tasks/index.blade.php)
EN

Stack Overflow用户
提问于 2021-04-05 19:42:02
回答 3查看 52关注 0票数 0

这是我的TaskController,其中定义了done_at ()函数来存储完整的当前时间

代码语言:javascript
复制
public function complete($id)
{
    $task = Task::create([
        'done_at' => now(),
    ]);

    return redirect()->route('tasks.index')->withSuccess('Done');
}

这是我的web.php路由

代码语言:javascript
复制
Route::post('/tasks/complete', 'TaskController@complete');

这是我的索引页面,其中有用于保存当前时间的提交按钮

代码语言:javascript
复制
<form action="{{ route('tasks.complete', $task->id) }}" method="post">
    @csrf
    <input type="submit">
</form>
EN

回答 3

Stack Overflow用户

发布于 2021-04-05 19:43:33

您遗漏了路由的名称声明,如下所示:

代码语言:javascript
复制
Route::post('/tasks/complete', 'TaskController@complete')->name('tasks.complete');
票数 4
EN

Stack Overflow用户

发布于 2021-04-06 02:23:36

注意:如果要添加新任务,请使用第一个任务;如果要更新现有任务,请使用第二个任务:

//-First:

TaskController:

代码语言:javascript
复制
public function complete() {
    $task = Task::create([
        'done_at' => now(),
    ]);

    return redirect()->route('tasks.index')->withSuccess('Done');
}

web.php

代码语言:javascript
复制
Route::post('/tasks/complete', 'TaskController@complete')->name('tasks.complete');

您的视图文件(索引页):

代码语言:javascript
复制
<form action="{{ route('tasks.complete') }}" method="post">
    @csrf
    <input type="submit">
</form>

//-Second:

或者,如果您需要在控制器中传递id参数,则应使用以下代码:

TaskController:

代码语言:javascript
复制
public function complete($id) {
    $task = Task::findOrFail($id);
    if ($task) {
        $task->update([
            'done_at' => now()
        ]);
        return redirect()->route('tasks.index')->withSuccess('Done');
    }
    return redirect()->route('tasks.index')->withSuccess('Task No Found');
}

web.php

代码语言:javascript
复制
Route::post('/tasks/complete/{id}', 'TaskController@complete')->name('tasks.complete');

您的视图文件(索引页):

代码语言:javascript
复制
<form action="{{ route('tasks.complete', ['id' => $task->id]) }}" method="post">
    @csrf
    <input type="submit">
</form>
票数 1
EN

Stack Overflow用户

发布于 2021-04-05 19:55:42

根据控制器中的complete()函数和表单操作,

您的路由应如下所示:

代码语言:javascript
复制
Route::post('/tasks/complete/{id}', 'taskcontroller@complete')->name('tasks.complete');
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66952439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档