【发布时间】:2021-01-03 04:09:25
【问题描述】:
我正在使用 Laravel,我目前正在资源控制器中实现 'destroy' 方法作为 CRUD 的一部分。该方法应该删除我数据库中的指定记录。
该方法由我的blade.php 文件调用,该文件使用带有DELETE 方法和route('my-resources.destroy', $my-resource->id) 的表单。我希望控制器返回一个字符串,例如“已成功删除!”以便我可以将其显示给客户。
这是我的代码:
在views/book/edit.blade.php中:
<form method="DELETE" action="{{ route('books.destroy', $book->id) }}">
<div class="form-item center">
<button type="submit" class="btn-danger">Delete</button>
</div>
</form>
在 BookController.php 中:
public function destroy($id)
{
$book = Book::find($id);
$book->delete();
return redirect()->away('https://www.google.com');
}
我将重定向到 google.com 只是为了查看重定向是否有效,但它没有。当我单击“删除”按钮时,网址从http://127.0.0.1:8000/books/1/edit 变为http://127.0.0.1:8000/books/1?,末尾带有问号。我做错了什么?
我还有一个问题:如果我想返回状态,我应该使用类似的东西
Route::get('/', function () {
return 'Deleted successfully';
});
或
$request->session()->flash('status', 'Task was successful!');
/** and some random return statement **/
谢谢!
【问题讨论】:
标签: laravel forms http model-view-controller