0
0
Files
Babyclass/app/Admin/Controllers/AdvertController.php
2020-08-04 10:09:42 +08:00

111 lines
3.1 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Models\Advert;
use Illuminate\Http\Request;
use Validator;
/**
* 轮播管理,基本完成
*/
class AdvertController extends Controller
{
protected $models = [
'Article' => '资讯模型',
'Goods' => '商品模型',
];
public function index(Request $request)
{
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$model = $request->model;
$adverts = Advert::when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})
->when($model, function ($query) use ($model) {
$query->where('advertable_type', 'like', "%{$model}%");
})
->paginate($numPerPage);
return view('Admin::adverts.index', compact('adverts'));
}
public function create()
{
$models = $this->models;
return view('Admin::adverts.create', compact('models'));
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'sort' => 'required|numeric',
'storage_id' => 'required',
], [
'sort.required' => '排序必须填写',
'sort.numeric' => '排序只能是数字',
'url.required' => 'url必须填写',
'url.url' => 'url格式不正确',
'storage_id.required' => '图片必须上传',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
Advert::create([
'storage_id' => $request->storage_id,
'sort' => $request->sort,
'url' => $request->url,
]);
return $this->success('轮播创建成功', 'close');
}
public function edit(Advert $advert)
{
$models = $this->models;
return view('Admin::adverts.edit', compact('models', 'advert'));
}
public function update(Request $request, Advert $advert)
{
$validator = Validator::make($request->all(), [
'sort' => 'required|numeric',
'storage_id' => 'required',
], [
'sort.required' => '排序必须填写',
'sort.numeric' => '排序只能是数字',
'url.required' => 'url必须填写',
'url.url' => 'url格式不正确',
'storage_id.required' => '图片必须上传',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
$advert->update([
'storage_id' => $request->storage_id,
'sort' => $request->sort,
'url' => $request->url,
]);
return $this->success('轮播更新成功', 'close');
}
public function destroy(Advert $advert)
{
if ($advert->delete()) {
return $this->success();
} else {
return $this->error();
}
}
}