Laravel框架之路由

Laravel

Laravel 让我们书写优雅的代码,为 Web 艺术家创造的 PHP 框架

Laravel安装

  • 略(网上有教程)

Laravel使用

  • 安装过后就可以直接使用

Laravel目录

├── app //目录包含应用程序的核心代码。你应用中几乎所有的类都应该放在这里。
├── bootstrap //目录包含引导框架并配置自动加载的文件。
├── config //目录,顾名思义,包含应用程序所有的配置文件。
├── database //目录包含数据填充和迁移文件。你还可以把它作为 SQLite 数据库存放目录。
├── public //目录包含了入口文件 index.php,它是进入应用程序的所有请求的入口点。
├── resources //目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。
├── routes //目录包含了应用的所有路由定义,
├── storage //目录包含编译的 Blade 模板、基于文件的会话和文件缓存、以及框架生成的其他文件。
├── tests //目录包含自动化测试文件。Laravel 已内置了 PHPUnit 的测试范例供你参考。
├── vendor //目录包含了你的 Composer 依赖包。
更多详细信息参考Laravel中文手册

Laravel路由

laravel的路由请求方式有(get,post,put,patch,delete)

get、post请求

<?php
//get请求路由
Route::get('test', function () {
    return '123456';
});
//post请求路由
Route::post('test2',function(){
  return '123123';
});
?>

多请求路由

<?php
//第一种
Route::match(['get','post'],'test3',function(){
  return '111111';
});

//第二种
Route::any('test4',function(){
  return '2222222';
});
//这两种都是多请求路由,但是他们有不同的地方,第一种(match):可以自定义多请求方式。第二种(any):响应所有请求方式*

路由参数

<?php
 Route::get('user/{id}',function($id){
   return 'user-id='.$id;
 });
//这种路由参数必须在‘user’后面添加一个“id”参数,如果不添加就会报错。

 Route::get('user/{name?}',function($name='twor'){
   return 'user-name='.$name;
 });
//这种写法就相当php语法中的`$name?:$name=twor`,这里的‘?’是必须要加上的,如果没有这个‘?’,可以理解为占位符,就像这样
//Route::get('user/{name}',function(name='twor'){
//   return 'user-name='.name;
// });
//就会报错

路由参数验证

<?php
 Route::get('user/{name?}',function($name='twor'){
   return 'user-name='.$name;
 })->where('name','[A-Za-z]+');
//还支持路由参数的验证,验证规则可以用正则表达式写
Route::get('user/{id}/{name?}',function($id,$name='twor'){
  return 'user-id='.$id.'-name='.$name;
})->where(['id'=>'[0-9]+','name'=>'[A-Za-z]+']);

调用的控制器与模型

  Laravel的控制器的目录在App\Http\Controllers下面,新建控制器就在该目录下面新建xxxController.php就行了。Laravel的模型就就在App目录下面,所以在我们写命名空间时不要写错。

控制器命名空间:  namespace App\Http\Controllers;
模型命名空间: namespace App;

在控制器中调用模型

  我们在App下面新建Test.php,写如下代码:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{

  public static function getTest()
  {
    return 'name is Twor';
  }
}

  同时在App\Http\Controllers下面新建TestController.php写如下代码:

<?php
namespace App\Http\Controllers;
use App\Test;
class TestController extends Controller
{
    public function info()
    {
      return Test::getTest();
    }
}

在路由中调用控制器

  最后我们需要在路由里面写下我们需要访问的路径

Route::get('test',['uses'=>'[email protected]']);

这样我们在地址栏输入http://localhost/http/laravel/public/test就可以直接访问我们的模型了。

Edit with markdown