博客列表 >laravel路由与控制器视图入门操作+数据库操作

laravel路由与控制器视图入门操作+数据库操作

Admin
Admin原创
2020年03月11日 21:24:04941浏览

laravel路由与控制器视图入门操作

路由

路由是laravel中非常重要的,任何访问都需要经过路由。
laravel提供了路由方式

  1. Route::get($uri, $callback);
  2. Route::post($uri, $callback);
  3. Route::put($uri, $callback);
  4. Route::patch($uri, $callback);
  5. Route::delete($uri, $callback);
  6. Route::options($uri, $callback);

实际上大部分操作我们只需要用get与post即可完成我们来看一下路由 的实例

  1. Route::get('/login-admin',function (){
  2. return '你访问了后台';
  3. })

此时我们定义了一个访问login-admin的路由将返回’你访问了后台’这几个字。

这就是一个用get方式提交的一个路由。
我们接下来演示一下post方式所提交的路由。

路由+视图

我们先在视图文件夹创建一个视图目录

然后我们在路由中进行路由

  1. Route::get('/form',function(){
  2. return view('form');
  3. });
  4. route::post('/test',function (){
  5. return '你用post请求到我了';
  6. });

我们再进行访问你会发现居然出错了!

因为post提交中laravel为了防止CSRF攻击规定了post,put,delete提交方式必须要再html表单中加入@csrf

这样子就能请求到post提交方式。
另外还可以在路由中传递参数

  1. Route::get('/form/{a}/{b}',function($a, $b){
  2. return $a+$b;
  3. });


当然还有可选参数

  1. Route::get('/form/{a?}/{b?}',function($a='2', $b='3'){
  2. return $a+$b;
  3. // return view('form');
  4. });

至于规则那么和编程语言中自然是大同小异。

Controller控制器的创建与使用

laravel控制器的位置默认于app/http/controller
如何创建控制器
使用终端命令

  1. php artisan make:controller `控制器名称`

我们这边创建一个Home控制器用来输出首页

这没啥好说的你也可以手动创建,别忘记了命名空间就是了
接下来我们写好控制器部分渲染一下我们的视图再用路由来加载控制器

  1. Route::get('/home','Home@index');
  1. namespace App\Http\Controllers;
  2. use Illuminate\Http\Request;
  3. class Home extends Controller
  4. {
  5. public function index()
  6. {
  7. return view('home');
  8. }
  9. }

接下来是数据库操作

这边就演示一个原生sql语法采用DB类进行操作因为select,update,delete,insert写法和原生一样

接下来我来使用laravel提供的链式结构来一次增删改查
删除的一个示例

  1. //路由
  2. Route::get('/home/delete/{a}','Home@delete');
  3. //控制器
  4. public function delete($id='')
  5. {
  6. $res = DB::table('art')->where('art_id',$id)->delete();
  7. //laravel从控制器中数据传值给视图会去外壳所以我们需要多套一层
  8. //这样子在视图中就存在了article变量;
  9. return $this->index();
  10. }


SELECT查询

  1. //路由
  2. Route::get('/home/select/{a}','Home@select');
  3. //查询
  4. public function select($page='1')
  5. {
  6. $res = DB::table('art')->select('title','content')->limit($page)->get();
  7. //laravel从控制器中数据传值给视图会去外壳所以我们需要多套一层
  8. $data['article'] = $res;
  9. //这样子在视图中就存在了article变量;
  10. return view('home',$data);
  11. }


update

  1. public function update()
  2. {
  3. DB::table('art')->where('art_id',5)->update(['title'=>'更改标题']);
  4. return $this->index();
  5. }

insert

  1. public function insert()
  2. {
  3. $data = [
  4. 'art_id'=>'6',
  5. 'cat_id'=>'17',
  6. 'user_id'=> 0,
  7. 'title'=> '新增文章',
  8. 'content' => '这是我新增的文章',
  9. 'pubtime' => time(),
  10. 'author' => '新增',
  11. ];
  12. DB::table('art')->insert($data);
  13. return $this->index();
  14. }

在laravel给我们提供的链式操作方法中,简化了很多的流程,是我们可以很快的上手具体的推荐各位看官方文档https://learnku.com/docs/laravel/5.8/queries/3926

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议