找不到控制器内部的自定义功能

时间:2019-09-05 05:10:13

标签: laravel laravel-routing laravel-5.8 laravel-controller

我用controller创建了一个resource。我在其中创建了一个自定义函数,但是当我将其用作route中的blade.php时,它表示未定义。

任何有关该错误的说明和解释的帮助,深表感谢!

刀片

    <div class="modal fade" id="issueModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
        <div class="modal-header">
            <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
            </button>
        </div>
        <div class="modal-body">
            <form action="{{route('inventory.deduct')}}" method="post">


        </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-primary">Save changes</button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
            </form>
        </div>
    </div>
</div>

控制器中的自定义功能

public function deduct(Type $var = null)
{
    dd("test");
}

路线

Route::resource('inventory', 'InventoryController');

2 个答案:

答案 0 :(得分:3)

Route::post('/inventory/deduct', 'InventoryController@deduct')->name('inventory.deduct');

将此添加到Web.php文件中的Routes中。 资源仅创建控制器的默认路由,而不创建自定义路由。

答案 1 :(得分:0)

资源路由适用于indexcreatestoreshoweditupdatedestroy。您的新路线未在资源路线中定义。因此,您必须创建一条新路线来使用它。将此路径添加到web.php文件中的资源路径上方

Route::post('inventory/deduct', 'InventoryController@deduct')->name('inventory.deduct');

这将确定您的路线,您可以在表单中使用它,也可以为控制器添加功能以完成您想做的事情。