首先要先创建数据表,例如:
CREATE TABLE `group` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`group_title` varchar(30) DEFAULT NULL COMMENT '标题',
`goods_id` int(10) DEFAULT NULL COMMENT '关联商品id',
`group_num` int(20) DEFAULT NULL COMMENT '拼团人数',
`group_price` decimal(15,2) DEFAULT NULL COMMENT '拼团价格',
`staus` varchar(50) DEFAULT NULL COMMENT '状态',
`starts_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '活动开始时间',
`end_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '活动结束时间',
`created_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`deleted_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4;
- admin创建拼团模型层
php artisan make:model GroupModel
- 模型层
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class GroupModel extends Model
{
//绑定表名
protected $table ='group';
//use SoftDeletes;
}
- admin创建拼团页面控制器
php artisan admin:make GroupController --model=App\GroupModel
- 创建好控制器会自动生成路由
$router->resource('group-models', GroupController::class);
- 控制器
<?php
namespace App\Admin\Controllers;
use App\GroupModel;
use App\Repository\Interfaces\CInterfaces;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class GroupController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'GroupModel';
/**
* Make a grid builder.
*
* @return Grid
*/
protected $asd;
public function __construct(CInterfaces $asdf)
{
$this->asd = $asdf;
}
protected function grid()
{
$grid = new Grid(new GroupModel());
$grid->column('id', __('Id'));
$grid->column('group_title', __('标题'));
$grid->column('goods_id', __('商品id'));
$grid->column('group_num', __('拼团人数'));
$grid->column('group_price', __('拼团价格'));
$grid->column('starts_at', __('开始时间'));
$grid->column('end_at', __('结束时间'));
$grid->column('created_at', __('创建时间'));
$grid->column('updated_at', __('修改时间'));
$grid->column('deleted_at', __('删除时间'));
$grid->selector(function (Grid\Tools\Selector $selector) {
$selector->select('staus', '所有活动', [
0 => '所有拼团',
1 => '未开始',
2 => '进行中',
3 => '已结束',
4 => '已失效',
], function ($query, $value) {
$num = $value[0];
$a = $this->asd->Asdf($num);
//dd($value[0]);
// $query->whereBetween('status', $between[$value['0']]);
// $query->whereBetween('id', [1,3]);
$query->wherein('id', $a);
});
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(GroupModel::findOrFail($id));
$show->field('id', __('Id'));
$show->field('group_title', __('Group title'));
$show->field('goods_id', __('Goods id'));
$show->field('group_num', __('Group num'));
$show->field('group_price', __('Group price'));
$show->field('starts_at', __('Starts at'));
$show->field('end_at', __('End at'));
$show->field('created_at', __('created_at'));
$show->field('updated_at', __('Updated at'));
$show->field('deleted_at', __('Deleted at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new GroupModel());
$form->text('group_title', __('Group title'));
$form->number('goods_id', __('Goods id'));
$form->number('group_num', __('Group num'));
$form->decimal('group_price', __('Group price'));
$form->datetime('starts_at', __('Starts at'))->default(date('Y-m-d H:i:s'));
$form->datetime('end_at', __('End at'))->default(date('Y-m-d H:i:s'));
$form->datetime('created_at', __('Created at'))->default(date('Y-m-d H:i:s'));
return $form;
}
}
- 新建仓库目录
https://blog.youkuaiyun.com/simplexingfupeng/article/details/82083395?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
https://blog.youkuaiyun.com/sinat_21125451/article/details/54290962?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param
<?php
App下的Providers 目录下的 RepositoryStusProvider.php
namespace App\Providers;
use App\Repository\Interfaces\CInterfaces;
use App\Repository\Repositories\CRe;
use Illuminate\Support\ServiceProvider;
class RepositoryStusProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind(
//绑定仓库
CInterfaces::class,
CRe::class
);
}
}
Interfaces
<?php
Repository目录下的 Interface下的 CInterfaces.php
namespace App\Repository\Interfaces;
Interface CInterfaces
{
public function Asdf($num);
}
<?php
Repository目录下的 Repositories下的 CRe.php
namespace App\Repository\Repositories;
use App\GroupModel;
use App\Repository\Interfaces\CInterfaces;
class CRe implements CInterfaces
{
public function Asdf($num)
{
$times = date("Y-m-d H:i:s");//获取当前时间
if ($num == 1) {//未开始
$ids = GroupModel::where('starts_at', '>', $times)
->where('staus', '=', 1)
->get()->pluck('id');
return $ids;
} elseif ($num == 0) {//所有活动
$ids = GroupModel::get()->pluck('id');
return $ids;
} elseif ($num == 2) {//正在进行的
$ids = GroupModel::where('starts_at', '<', $times)
->where('staus', '=', 1)
->where('end_at', '>', $times)
->get()->pluck('id');
// dd(132);
return $ids;
} elseif ($num == 3) {//结束的
$ids = GroupModel::where('end_at', '>', $times)
->where('staus', '=', 1)
->get()->pluck('id');
// dd(132);
return $ids;
} else {//失效的
$ids = GroupModel::where('staus', '=', 0)
->get()->pluck('id');
// dd(132);
return $ids;
}
}
}
在 config 目录下的app.php加入
App\Providers\RepositoryStusProvider::class,