You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.3 KiB
61 lines
2.3 KiB
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Models\ProductHasUser; // 引入用户与商品关联模型
|
|
use Encore\Admin\Controllers\AdminController; // 引入管理控制器基类
|
|
use Encore\Admin\Form; // 引入表单构建器
|
|
use Encore\Admin\Grid; // 引入网格构建器
|
|
use Encore\Admin\Show; // 引入展示构建器
|
|
|
|
class ProductLikeController extends AdminController
|
|
{
|
|
/**
|
|
* 当前资源的标题.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $title = '商品喜好'; // 设置资源的标题为“商品喜好”
|
|
|
|
/**
|
|
* 创建网格构建器.
|
|
*
|
|
* @return Grid 返回网格实例
|
|
*/
|
|
protected function grid()
|
|
{
|
|
$grid = new Grid(new ProductHasUser); // 创建新的网格实例,基于 ProductHasUser 模型
|
|
|
|
$grid->model()->latest(); // 按照创建时间降序排列数据
|
|
|
|
// 定义网格的列
|
|
$grid->column('user_id', __('User id')); // 显示用户 ID
|
|
$grid->column('product_id', __('Product id')); // 显示商品 ID
|
|
|
|
$grid->column('user.name', '用户'); // 显示用户姓名
|
|
$grid->column('created_at', '收藏时间'); // 显示商品收藏的时间
|
|
$grid->column('product.name', '商品'); // 显示商品名称
|
|
$grid->column('product.price', '价格')->display(function ($price) {
|
|
// 显示商品价格,并附加原价
|
|
return $price . '/' . $this->product['original_price']; // 返回格式化的价格
|
|
});
|
|
$grid->column('product.thumb', '首图')->image('', 50, 50); // 显示商品缩略图,设置显示大小
|
|
|
|
// 禁用某些操作
|
|
$grid->disableActions(); // 禁用行操作按钮
|
|
$grid->disableCreateButton(); // 禁用创建按钮
|
|
$grid->disableBatchActions(); // 禁用批量操作按钮
|
|
|
|
// 定义过滤器
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->disableIdFilter(); // 禁用 ID 过滤器
|
|
$filter->like('user_id', '用户ID'); // 用户 ID 模糊查询
|
|
$filter->like('product_id', '商品ID'); // 商品 ID 模糊查询
|
|
$filter->like('user.name', '用户名'); // 用户名模糊查询
|
|
$filter->equal('product.name', '商品'); // 商品名称精确查询
|
|
});
|
|
|
|
return $grid; // 返回构建好的网格
|
|
}
|
|
}
|