laravel入门及技术指南

介绍

        Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

参考

Laravel 5.7 中文文档 https://learnku.com/docs/laravel/5.7/installation/2242

Laravel8 中文文档 https://learnku.com/docs/laravel/8.x/

安装

我们使用composer安装,可以参考《Composer入门及技术指南》https://blog.csdn.net/yan_dk/article/details/90228559

注意,当前如果composer最新版本2.0以上使用,最好php版本使用>7.1的,本人现在使用版本为php7.2.9,使用php7.1.3是安装会出现问题。

composer.json文件如下

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.2.9",
        "laravel/framework": "^7.29"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://mirrors.aliyun.com/composer/"
        }
    }
}

注意:这里php版本,laravel/framework的版本一定要找到合适对应的版本,不然会报错找不到包。可以到https://packagist.org/,输入“laravle/laravel”,查看匹配的版本。例如:现在最新laravel8版本,匹配php7.3以上,需要改配置为:

       "php": ">=7.3.4",
        "laravel/framework": "8.*"

更新依赖包,

> composer update

注:可能会报错,php需要安装扩展fileinfo。成功后生成vendor目录

建立laravel项目

# composer create-project laravel/laravel test

注意调整php环境版本,可能报错(如php还要取消相应禁用函数proc_open、putenv),会自动根据当前的php版本创建相应的laravel版本的项目,建立成功后会在当前目录下创建“test“项目

启动项目

>php artisan serve

浏览器访问

laravel8.0

可能有后台报错“RuntimeException No application encryption key has been specified”,需要运行如下指令

# php artisan key:generate

 laravel7.29

IDE工具安装插件

针对phpstorm,可以安装laravel插件,方便编码

调试

安装调试工具,在phpstorm中安装

# composer require barryvdh/laravel-debugbar

安装完成后,在 config/app.php 中注册服务提供者到 providers 数组。

Barryvdh\Debugbar\ServiceProvider::class,

在配置文件 config/app.php 中添加到 aliases 数组:

'Debugbar' => Barryvdh\Debugbar\Facade::class,

然后运行如下 Artisan 命令将该扩展包的配置文件拷贝到 config 目录下:

php artisan vendor:publish

选1 

如果配置文件中 debug 设置为 true 的话,Debugbar 分析器默认是启用的,如果你想要关闭该分析器,在配置文件 config/debugbar.php 中设置 enabled 为 false 即可。

phpstorm调试使用debug模式运行,显示如下:

编码

路由

生成控制器

资源控制器
# php artisan make:controller Api/OrderController --resouce
行为控制器
# php artisan make:controller Only/SlipController --invokable

注意:
1.laravel8的路由写法按原有laravel5.7以下写法会报错,改动方法如下:

class RouteServiceProvider extends ServiceProvider
{
   # 添加该属性就可以按照之前习惯的写法编码了
   protected $namespace = "App\Http\Controllers";
...
}

路由配置

// 单一控制器
Route::get('slip','Only\SlipController');
Route::get('slipindex','Only\SlipController@index');

//资源控制器
Route::resource('order','Api\OrderController');
//资源访问限制
//允许指定方法访问
Route::resource('order1','Api\OrderController')->only([
    'index','store'
]);
//不允许指定方法访问
Route::resource('order2','Api\OrderController')->except([
    'index','store'
]);

视图

视图定义

<!DOCTYPE html>
<html lang="{
   
   { str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Laravel</title>
</head>
<body>
<form method="post" action="login">
    {
   
   {csrf_field()}}
    用户:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <button type="submit">提交</button>
</form>
</body>
</html>

控制器

class LoginController extends Controller
{
    public function index() {
        return view("login/login");
    }
    public function store(Request $request)
    {
        if ($request->method() == 'POST') {
            return 'username:'.$request->input('username').'password:'.$request->input('password');
        }
    }
}

路由配置

//登录
Route::get('login','LoginController@index');
Route::post('login','LoginController@store');

浏览器访问http://127.0.0.1:8000/login

猜你喜欢

转载自blog.csdn.net/yan_dk/article/details/117375890