批改状态:合格
老师批语:laravel, 看好你
Laravel 允许对具有macroable关键词的类进行功能扩展。
Larvel提供的get()、first()方法,获得的数据都不是纯数组。通过对DB类进行功能扩展,扩展lists()、item()方法,获得的数据都是纯数组,便于统一操作。
<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;use Illuminate\Database\Query\Builder as QueryBuilder;class DBServiceProvider extends ServiceProvider{public function boot(){//扩展lists方法,将数据转为纯数组QueryBuilder::macro('lists',function(){$data = $this->get()->all();$results=[];foreach($data as $val){$results[]=(array)$val;}return $results;});//扩展item方法,将对象转为数组QueryBuilder::macro('item',function(){$data = $this->get()->first();$results=(array)$data;return $results;});}}
//扩展DB功能App\Providers\DBServiceProvider::class,`
<?phpnamespace App\Http\Controllers\admins;use Illuminate\Support\Facades\DB;use App\Http\Controllers\Controller;use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth;// 管理员管理class Admin extends Controller{public function index(){$data['admins']=DB::table('admin')->lists();foreach ($data['admins'] as $key=>$val){$group=DB::table('admin_group')->where('gid',$val['gid'])->item();$data['admins'][$key]['group_title']=$group['title'];}return view('admins/admin/index',$data);}}

总结:
1、合理扩展laravel方法,使之更适合自己的操作习惯。
2、Laravel 采用MVC模式,MVC三者各司其职。在编程时应记清当前所处的环境位置,完成相应的功能。
3、路由非常重要,控制器下的各方法都要有路由。
4、安全中的菜单表文件和动态生成菜单等,设计得非常巧妙,需要好好消化理解。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号