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