139 lines
4.4 KiB
PHP
139 lines
4.4 KiB
PHP
<?php
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Admin;
|
|
use App\Models\Seller;
|
|
use App\Models\SellerTeacher;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Validator;
|
|
|
|
class TeacherController extends Controller
|
|
{
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$seller_id = $request->seller_id;
|
|
$title = $request->title;
|
|
$orderField = $request->orderField;
|
|
$orderDirection = $request->orderDirection;
|
|
$numPerPage = $request->numPerPage ?: 30;
|
|
$admin = Admin::user();
|
|
|
|
$teachers = SellerTeacher::when($seller_id, function ($query) use ($seller_id) {
|
|
$query->where('seller_id', $seller_id);
|
|
})
|
|
->when($title, function ($query) use ($title) {
|
|
$query->where('title', 'like', "%{$title}%");
|
|
})
|
|
->when($orderField, function ($query) use ($orderField, $orderDirection) {
|
|
$query->orderBy($orderField, $orderDirection);
|
|
})
|
|
->orderBy('created_at', 'desc')
|
|
->paginate($numPerPage);
|
|
|
|
return view('Admin::teacher.index', compact('teachers'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$sellers = Seller::where('type', 'organ')->get();
|
|
return view('Admin::teacher.create', compact('sellers'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:50',
|
|
'rank' => 'required|min:2',
|
|
'school_age' => 'required',
|
|
'storage_id' => 'required',
|
|
], [
|
|
'name.required' => '标题必须填写',
|
|
'name.min' => '标题最少为:min字符',
|
|
'name.max' => '标题最多为:max字符',
|
|
'rank.required' => '职级必须填写',
|
|
'rank.min' => '职级最少:min个字',
|
|
'school_age.required' => '教龄必须填写',
|
|
'storage_id.required' => '教师头像必须上传',
|
|
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
try {
|
|
DB::transaction(function () use ($request) {
|
|
$info = SellerTeacher::create($request->all());
|
|
});
|
|
return $this->success('操作成功', 'close');
|
|
} catch (\Exception $e) {
|
|
return $this->error('操作失败' . $e->getmessage());
|
|
}
|
|
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$info = SellerTeacher::find($id);
|
|
$sellers = Seller::where('type', 'organ')->get();
|
|
return view('Admin::teacher.edit', compact('info', 'sellers'));
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$info = SellerTeacher::find($id);
|
|
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required|min:2|max:50',
|
|
'rank' => 'required|min:2',
|
|
'school_age' => 'required',
|
|
'storage_id' => 'required',
|
|
], [
|
|
'name.required' => '标题必须填写',
|
|
'name.min' => '标题最少为:min字符',
|
|
'name.max' => '标题最多为:max字符',
|
|
'rank.required' => '职级必须填写',
|
|
'rank.min' => '职级最少:min个字',
|
|
'school_age.required' => '教龄必须填写',
|
|
'storage_id.required' => '教师头像必须上传',
|
|
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
try {
|
|
DB::transaction(function () use ($request, $info) {
|
|
$info = $info->update($request->all());
|
|
});
|
|
return $this->success('操作成功', 'close');
|
|
} catch (\Exception $e) {
|
|
return $this->error('操作失败' . $e->getmessage());
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* 彻底删除单条目
|
|
* @Author:<C.Jason>
|
|
* @Date:2018-11-02T13:43:36+0800
|
|
* @param [type] $user [description]
|
|
* @return [type] [description]
|
|
*/
|
|
public function delete(SellerTeacher $info)
|
|
{
|
|
try {
|
|
DB::transaction(function () use ($info) {
|
|
$info->delete();
|
|
});
|
|
return $this->success('操作成功');
|
|
} catch (\Exception $e) {
|
|
return $this->error('操作失败' . $e->getmessage());
|
|
}
|
|
|
|
}
|
|
}
|