相册与照片是一对多的关系,有以下需求:
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 实现在指定的相册下添加照片就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持w3xue。