Blogger Information
Blog 30
fans 0
comment 1
visits 22012
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
laravel路由与控制器视图入门操作+数据库操作
Admin
Original
942 people have browsed it

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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:为了提升效率, 降低出错率, 推荐尽可能使用命令方式来完成基本创建工作
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post