Laravel

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

  • Laravel中文社区

    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请求

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    //get请求路由
    Route::get('test', function () {
    return '123456';
    });
    //post请求路由
    Route::post('test2',function(){
    return '123123';
    });
    ?>

多请求路由

1
2
3
4
5
6
7
8
9
10
11
<?php
//第一种
Route::match(['get','post'],'test3',function(){
return '111111';
});

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

路由参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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;
// });
//就会报错

路由参数验证

1
2
3
4
5
6
7
8
<?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,写如下代码:

1
2
3
4
5
6
7
8
9
10
11
<?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写如下代码:

1
2
3
4
5
6
7
8
9
10
<?php
namespace App\Http\Controllers;
use App\Test;
class TestController extends Controller
{
public function info()
{
return Test::getTest();
}
}

在路由中调用控制器

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

1
Route::get('test',['uses'=>'TestController@info']);

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