在2年后使用Codeigniter开发了一些项目之后,我开始学习Laravel.
我下载了一些项目,了解它们是如何编码的.据我所知,他们中的许多人只使用与Codeigniter相同的模型,视图和控制器.
但是一个项目使用了存储库和接口.很难理解该项目的最新进展.那么Laravel中存储库和接口的用法是什么?我应该什么时候使用它们?
请看下面的代码.这段代码我用Codeigniter编写.我需要强调的是条件和订单条件只有在设置了这些发布请求后才能起作用.否则就是我select * from student.
Codeigniter代码
$this->db->select('*');
$this->db->from('student');
if($this->input->post('first_name') != NULL){
$first_name = $this->input->post('first_name');
$this->db->where('first_name', $first_name);
}
if($this->input->post('last_name') != NULL){
$last_name= $this->input->post('last_name');
$this->db->where('last_name', $last_name);
}
if($this->input->post('order_by') != NULL){
$order_by= $this->input->post('order_by');
$this->db->order_by($order_by);
}
$query = $this->db->get();
Run Code Online (Sandbox Code Playgroud)
Laravel代码
我将用laravel做同样的事情.
$first_name = $request->input('first_name');
$last_name = $request->input('last_name');
$order_by = $request->input('$order_by');
$students = Student::orderBy($order_by)
->where('first_name',$first_name)
->where('last_name',$last_name);
->paginate(10);
Run Code Online (Sandbox Code Playgroud)
我能够运行上面的代码.所有发布请求时代码都有效.
但如果没有first_name帖子请求,我需要删除->where('first_name',$first_name).
如果我没有order_by发布请求,我需要删除orderBy($order_by).
如何使用上面的Laravel代码.