在laravel 5.6中找不到方法

时间:2019-04-26 16:31:42

标签: laravel laravel-5

我正面临一个神秘的问题。当我按提交时,它会显示

  

方法App \ Http \ Controllers \ RentController :: store_data不存在。

我试图找出答案,但是找不到。预先感谢。

在我的路线上

Route::post('/save_rent', 'RentController@store_data');

在我的控制器中

<?php

namespace App\Http\Controllers;
use Session;
use App\rent;
use Illuminate\Http\Request;

class RentController extends Controller
{
    public function store_data(Request $request)
    {
        dd('12');
    }
}

在我看来

<form 
    class="form form-horizontal"
    action="{{ url('save_rent') }}"
    method="POST"
    enctype="multipart/form-data"
>
    {{ csrf_field() }}
</form>

2 个答案:

答案 0 :(得分:0)

尝试为该路线定义一个名称。如下所示

Route::post('/save_rent', 'RentController@store_data')->name('rent.store.data');

然后调用带有路线名称的表单操作

action="{{ route('rent.store.data') }}

更新:

另一个值得注意的主要问题是您对Controller的扩展未定义。

您应该将此添加到您的控制器文件中

use App\Http\Controllers\Controller;

它看起来像下面的

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Session;
use App\rent;
use Illuminate\Http\Request;

class RentController extends Controller
{
    public function store_data(Request $request)
    {
        dd('12');
    }
}

答案 1 :(得分:0)

只需命名路线并以表格形式使用路线名称即可。

Route::post('/save_rent', 'RentController@store_data')->name('rent.store');

以您的形式

<form 
 class="form form-horizontal" action="{{ route('rent.store') }}" method="POST">
{{ csrf_field() }}
</form>

我在您的控制器中没有发现任何错误。 希望它能起作用!