相册与照片是一对多的关系,有以下需求:
1、点开一条相册数据看到相册的照片列表
2、为相册添加照片时,表单中要看到相册的基本信息
以下是实现步骤:
第一步:构建带参数路由:
$router->resource('manage/{albumid}/photo',Manage\PhotoController::class);
第二步:处理操作对应的函数:
(1)列表查看
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)创建照片,并在创建表单上显示所属相册的基本属性
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)更新照片
//重写update,多接收一个参数 public function update($album,$id) { return $this->form()->update($id); }
(4)删除照片
//重写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 实现在指定的相册下添加照片就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。