90 lines
2.5 KiB
PHP
90 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Helpers\Paginator;
|
|
use App\Http\Requestes\AgriculturalBaseRequest;
|
|
use App\Http\Resources\AgriculturalBaseResource;
|
|
use App\Models\AgriculturalBase;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class AgriculturalBaseController extends Controller
|
|
{
|
|
/**
|
|
* 基地数据列表
|
|
*
|
|
* @param Request $request
|
|
* @return void
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$query = AgriculturalBase::with('crops')->filter($request->all())->sort();
|
|
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
|
|
|
return AgriculturalBaseResource::collection($list);
|
|
}
|
|
|
|
public function store(AgriculturalBaseRequest $request)
|
|
{
|
|
$cropsIds = $request->input('crops_ids', []);
|
|
try {
|
|
DB::beginTransaction();
|
|
//添加基地信息
|
|
$base = AgriculturalBase::create($request->input());
|
|
//添加基地农作物
|
|
$base->crops()->sync($cropsIds);
|
|
DB::commit();
|
|
} catch(\Throwable $th) {
|
|
DB::rollBack();
|
|
report($th);
|
|
|
|
return $this->error('添加失败,请稍后再试');
|
|
}
|
|
|
|
return $this->success('添加成功!');
|
|
}
|
|
|
|
public function show(AgriculturalBase $agriculturalBasic)
|
|
{
|
|
return $this->json(AgriculturalBaseResource::make($agriculturalBasic));
|
|
}
|
|
|
|
public function update(AgriculturalBase $agriculturalBasic, AgriculturalBaseRequest $request)
|
|
{
|
|
$cropsIds = $request->input('crops_ids', []);
|
|
try {
|
|
DB::beginTransaction();
|
|
//添加基地信息
|
|
$agriculturalBasic->update($request->input());
|
|
//添加基地农作物
|
|
$agriculturalBasic->crops()->sync($cropsIds);
|
|
DB::commit();
|
|
} catch(\Throwable $th) {
|
|
DB::rollBack();
|
|
report($th);
|
|
|
|
return $this->error('修改失败,请稍后再试');
|
|
}
|
|
|
|
return $this->success('修改成功!');
|
|
}
|
|
|
|
public function destroy(AgriculturalBase $agriculturalBasic)
|
|
{
|
|
try {
|
|
DB::beginTransaction();
|
|
$agriculturalBasic->crops()->sync([]);
|
|
$agriculturalBasic->delete();
|
|
DB::commit();
|
|
} catch(\Throwable $th) {
|
|
DB::rollBack();
|
|
report($th);
|
|
|
|
return $this->error('删除失败,请稍后再试');
|
|
}
|
|
|
|
return $this->success('删除成功!');
|
|
}
|
|
}
|