【问题标题】:Button Call to controller function / method按钮调用控制器功能/方法
【发布时间】:2021-01-06 23:46:03
【问题描述】:

我正在使用 Laravel 7,并且一直试图通过我视图中的按钮启动 Controller 方法。我正在使用带有简单 a 标签的表单,但不确定我如何处理它是否是最好的方法。此外,我在尝试它的方式上遇到了错误。错误是:

Too few arguments to function App\Http\Controllers\TasksController::finished(), 1 passed in C:\laragon\www\taskapp\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54 and exactly 2 expected

我真的很困惑如何通过单击按钮调用方法。我要做的是(单击按钮时)将我的数据库中名为$task->task_status 的项目的状态更改为“完成”。

在主视图的表格中,我有一个这样的表格:

<td>
     <form method="POST" action="/tasks/{{$task->id}}">
       {{ csrf_field() }}
       {{ method_field('POST') }}
        <div class="ml-5">
           <a href="{{ route('finished') }}" class="btn btn-success btn-sm"><i class="fa fa-check"></i></a>
         </div>
        </td>                       

在我的 web.php 中,我有:

Route::get('/finished/{id}', 'TasksController@finished')->name('finished');

在我的 TasksController 中,我有以下内容:

public function finished(Request $request, $id) {
        $task = Task::find($id);
        dd($task);
        $task->task_status = $request['task_status'] = 'Completed';
        $task->save();
        return redirect('home')->with('success', 'Task Completed and now viewable in Completed Tasks!');
    }

如果有人能告诉我一个更好的方法来完成这个(不使用 axaj),我将不胜感激。 提前谢谢你。

【问题讨论】:

    标签: php laravel-7


    【解决方案1】:

    我最终使用以下代码解决了这个问题: 在我的 web.php 中,我使用了:

    Route::get('/finished/{id}', 'TasksController@finished');
    

    在我的 home.blade.php 中,我有:

    <td>
     <form action="finished/{{$task->id}}" method="GET" style="display: inline" class="">
        @csrf
        @method('POST')
        <div class="ml-5">
          <button type="submit" class="btn btn-sm btn-success">
             <i class="fa fa-check"></i>
          </button>
        </div>
       </form>                              
    </td>
    

    在我的 TasksController 中,我几乎保持了原来的样子,现在它可以工作了。

    【讨论】:

      猜你喜欢
      • 2020-09-07
      • 1970-01-01
      • 2017-05-13
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多