laravel-admin 实现在指定的相册下添加照片

时间:2021-09-16 08:36:35

相册与照片是一对多的关系,有以下需求:

1、点开一条相册数据看到相册的照片列表

2、为相册添加照片时,表单中要看到相册的基本信息

以下是实现步骤:

第一步:构建带参数路由:

?
1
$router->resource('manage/{albumid}/photo',Manage\PhotoController::class);

第二步:处理操作对应的函数:

(1)列表查看

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function index($albumid)
 {
 return Admin::content(function (Content $content)use($albumid) {
 
  $content->header('header');
  $content->description('description');
 
  $content->body($this->grid($albumid));
 });
 }
 
 protected function grid($albumid)
 {
 return Admin::grid(Photos::class, function (Grid $grid)use($albumid) {
 
  $grid->model()->where('album_id',$albumid);
  ......
  }
 }

(2)创建照片,并在创建表单上显示所属相册的基本属性

?
1
2
3
4
5
6
7
8
9
10
11
protected function form()
 {
 return Admin::form(Photos::class, function (Form $form){
  $paramters = request()->route()->parameters();
 
  $artworkid = isset($paramters['albumid'])?$paramters['albumid']:request()->input('albumid');
 
  $album= ArtImage::find($albumid);
  ......
 }
 }

(3)更新照片

?
1
2
3
4
5
//重写update,多接收一个参数
public function update($album,$id)
{
return $this->form()->update($id);
}


(4)删除照片

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//重写destroy,多接收一个参数
public function destroy($albumid,$id)
{
if ($this->form()->destroy($id)) {
 return response()->json([
 'status' => true,
 'message' => trans('delete_succeeded'),
 ]);
} else {
 return response()->json([
 'status' => false,
 'message' => trans('delete_failed'),
 ]);
}
}

以上这篇laravel-admin 实现在指定的相册下添加照片就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/hhhzua/article/details/80617449