相册与照片是一对多的关系,有以下需求:
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'),
            ]);
        }
    }

标签: none

添加新评论