簡體   English   中英

刪除不起作用並重定向到同一頁面 - Laravel

[英]Delete not working and redirecting to the same page - Laravel

我是 laravel 的新手,遇到了一個問題。 我在 Controller 中做了一個刪除功能,並在路由中正確添加了它。 然后我將它連接到視圖中的一個按鈕。 當我按下按鈕時,它會將我重定向到同一頁面而不刪除任何內容。

這是我的功能:

 public function delete_user($id){
        $data = User::where('id' , $id);
        $data->delete();
        return route('home');
    }

這是我的路線:

Route::get('/delete/user/{id}' , 'UserController@delete_user');

我在這樣的視圖中添加它:

 <a href="{{action('UserController@delete_user' , $user->id)}}"><button class="btn btn-info btn-fill pull-right">Delete Profile</button></a>
                           

重定向后有一個 ? 在像abcd.com/delete/1?這樣的 url abcd.com/delete/1?

當我將鼠標懸停在按鈕上時,它會顯示正確的路線(圖像中的左下角),但是當我按下它時沒有任何反應: 在此處輸入圖片說明

任何幫助,將不勝感激。 謝謝

編輯:相同的功能在另一個視圖實例中工作得很好。

嘗試這個:

public function delete_user($id){
    $data = User::where('id' , $id)->first();
    // or
    // $data = User::find($id);

    $data->delete();

    return route('home');
}

每當您使用where子句檢索單個資源時,您必須為集合調用first()get()

嘗試這樣做:

控制器方法

public function delete_user($id){

    $user = User::findOrFail($id);

    $user->delete();

    return route('home');
}

路線

Route::delete('/delete/user/{id}' , 'UserController@delete_user')->name('delete-user');

看法

<a class="btn btn-info btn-fill pull-right" href="{{ route('delete-user') }}"
    onclick="event.preventDefault();
         document.getElementById('delete-user').submit();">
    {{ __('Delete user') }}
</a>

<form id="delete-user" action="{{ route('delete-user') }}" method="POST" style="display: none;">
   @csrf
</form>

另外我認為<a href="{{action('UserController@delete_user' , $user->id)}}"><button class="btn btn-info btn-fill pull-right">Delete Profile</button></a>應該有問題,因為您在鏈接中有一個按鈕......這是錯誤的。 如果你想使用按鈕,我剛剛向你展示的方法更好。 但實際上您的鏈接應該如下所示:

 <a href="{{ url("/delete/user/{$user->id}")}}">Delete Profile</a>

您需要修改控制器內的刪除功能,如下所示...

public function delete_user($id){
        $data = User::find($id);
        $data->delete();
        return redirect('/home'); //write name of view where you want to go.
    }

經過一些實驗,我似乎犯了一個相當粗心的錯誤。 我是作為表單提交類型刪除的。 我只是把按鈕放在表單外面,它工作得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM