laravel 我的控制器中的更新功能根本不运行

6pp0gazn  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(104)

我用这个命令php artisan make:model BuildingOnRent -mcr创建了我的模型,它创建了控制器和资源。
在我的web.php中,我像这样传递资源路由

我的web.php

Route::resource('br', BuildingOnRentController::class);

字符串
在Laravel自己搭建的控制器中,我在update函数下添加了这样的代码。

我的控制器

public function update(Request $request, BuildingOnRent $br)
    {
        echo $br;
        $request->validate([
            'purpose'=>'required',
            'rooms'=>'required',
            'bathrooms'=>'required',
            'parlour'=>'required',
            'rent_period'=>'required',
            'cost'=>'required',
            'city'=>'required',
            'state'=>'required',
            'locate'=>'required',
        ]);
        dd($br);
        $br->update($request->all());

        return redirect()->route('br.index')->with('success','Property updated successfully');
    }

我的edit.blade表单操作

<form action="{{ route('br.update',['br'=>$br]) }}" enctype="multipart/form-data">
        @csrf
        @method('PUT')
        // some html codes here
</form>


当我在edit.blade中填写并提交表单时,触发了控制器中的更新功能,我被重定向到路由br.index,但没有任何更新。事实上,更新代码甚至没有运行,因为我试图echo $brdd($br),但没有任何回应或转储。我认为更新代码根本没有运行。
为什么更新代码块不运行?
我怎么才能让它跑起来?
我用的是Laravel 10。请帮帮忙。

huus2vyu

huus2vyu1#

因为你已经创建了一个资源,为了更新,你必须从表单传递PATCHPUT方法。
route:list给予something like below

PUT|PATCH       br/{br} ........... br.update › BuildingOnRentController@update

字符串
形式:

<form action="{{ route('br.update', ['br' => $br]) }}" method="POST">
    @csrf
    @method('put')
    
    {{-- some HTML --}}
    <button type="submit">Submit</button>
</form>

相关问题