更新代码
This commit is contained in:
110
app/Admin/Controllers/AdvertController.php
Normal file
110
app/Admin/Controllers/AdvertController.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user