网络收藏夹功能实现——编辑 删除
时间: 2023-07-29 17:13:37 浏览: 107
网络收藏夹
网络收藏夹功能实现中的编辑和删除操作,是指用户可以对已有的收藏夹条目进行修改和删除。下面是一个简单的实现方式:
1. 修改视图
首先需要创建一个视图,用于显示要修改的收藏夹条目的信息,并提供一个表单,允许用户修改这些信息。可以在 resources/views/bookmarks 目录下创建一个 edit.blade.php 视图文件,包含以下表单代码:
```html
<form method="POST" action="/bookmarks/{{ $bookmark->id }}">
@csrf
@method('PUT')
<div class="form-group">
<label>Title</label>
<input type="text" class="form-control" name="title" value="{{ $bookmark->title }}">
</div>
<div class="form-group">
<label>URL</label>
<input type="text" class="form-control" name="url" value="{{ $bookmark->url }}">
</div>
<div class="form-group">
<label>Description</label>
<textarea class="form-control" name="description">{{ $bookmark->description }}</textarea>
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
```
这个表单中包含了与新增表单类似的元素,但是它们填充了已有的信息。还要注意,这个表单中还包含了一个隐藏的 _method 字段,它的值为 PUT,表示这是一个修改操作。
2. 实现控制器方法
在控制器中,需要实现 edit 和 update 两个方法来处理修改操作。可以使用以下代码来实现:
```php
public function edit(Bookmark $bookmark)
{
return view('bookmarks.edit', compact('bookmark'));
}
public function update(Request $request, Bookmark $bookmark)
{
$bookmark->title = $request->input('title');
$bookmark->url = $request->input('url');
$bookmark->description = $request->input('description');
$bookmark->save();
return redirect('/bookmarks');
}
```
在 edit 方法中,使用 $bookmark 参数来获取要修改的收藏夹条目的信息,并将它们传递给视图。在 update 方法中,从请求中获取修改后的信息,并将它们保存到数据库中。然后将用户重定向到收藏夹列表页面。
3. 删除操作
对于删除操作,可以在控制器中实现 destroy 方法:
```php
public function destroy(Bookmark $bookmark)
{
$bookmark->delete();
return redirect('/bookmarks');
}
```
这个方法会从数据库中删除指定的收藏夹条目,并将用户重定向到收藏夹列表页面。
4. 添加路由
最后,在 routes/web.php 文件中添加以下路由:
```php
Route::get('/bookmarks/{bookmark}/edit', 'BookmarksController@edit');
Route::put('/bookmarks/{bookmark}', 'BookmarksController@update');
Route::delete('/bookmarks/{bookmark}', 'BookmarksController@destroy');
```
这些路由将会将收藏夹列表的编辑和删除操作映射到控制器的相应方法中。
这样,用户就可以在网页上修改和删除已有的收藏夹条目了。
阅读全文