Laravel - 基础

一、使用 composer 建立项目

composer create-project --prefer-dist laravel/laravel blog
报错1
[ErrorException]proc_get_status() has been disabled for security reasons
报错2
[Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open
解决:

打开php.ini文件,搜索 disable_functions,找到以下相似内容:
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status....
找到 proc_get_status、proc_open 删除而后重启php服务;
或者:注释掉这行;php

# disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status....
报错3
Failed to enable crypto 
failed to open stream: operation failed
解决

更换composer镜像源,能够执行尝试如下几种:
更换成阿里镜像:webpack

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

更换成Laravel China镜像:laravel

composer config -g repo.packagist composer https://packagist.laravel-china.org

更换成中国全量镜像:git

composer config -g repo.packagist composer https://packagist.phpcomposer.com

二、配置域名、而后去访问、出现以下表示安装OK

报错1:
UnexpectedValueException
The stream or file "../storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
报错2:
ErrorException (E_WARNING)
file_put_contents(../storage/framework/views/f5a79bdb17b116aa71ccd551417888a08e8480aa.php): failed to open stream: Permission denied
解决:
以上两个都是 failed to open stream: Permission denied 意思是没有权限
chmod -R 777 ./storage/

三、了解项目目录

.env
.env.example
.gitattributes
.gitignore
artisan*
composer.json
composer.lock
package.json
phpunit.xml
readme.md
server.php
webpack.mix.js
app/
    // 目录包含应用程序的核心代码。你应用中几乎全部的类都应该放在这里。稍后咱们会更深刻地了解这个目录的细节。
bootstrap/  
    // 目录包含引导框架并配置自动加载的文件。
    // 该目录还包含了一个 cache 目录,存放着框架生成的用来提高性能的文件,好比路由和服务缓存文件。
config/ 
    // 目录,顾名思义,包含应用程序全部的配置文件。咱们鼓励你通读这些文件,以便帮助你熟悉全部可用的选项。
database/ 
    // 目录包含数据填充和迁移文件。你还能够把它做为 SQLite 数据库存放目录。
public/ 
    // 目录包含了入口文件 index.php,它是进入应用程序的全部请求的入口点。
    // 此目录还包含了一些你的资源文件(如图片、JavaScript 和 CSS)。
resources/ 
    // 目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。
    // 此目录还包含你全部的语言文件。
routes/
    // 目录包含了应用的全部路由定义,
    // Laravel 默认包含了几个路由文件:web.php、api.php、 console.php 和 channels.php。
    // web.php 文件包含 RouteServiceProvider 放置在 web 中间件组中的路由,
    // 它提供会话状态、CSRF 防御和 cookie 加密。
    // 若是你的应用不提供无状态的、RESTful 风格的 API,则全部的路由都应该在 web.php 文件中定义。
    // api.php 文件包含 RouteServiceProvider 放置在 api 中间件组中的路由,它提供了频率限制。
    // 这些路由都是无状态的,因此经过这些路由进入应用请求旨在经过令牌进行身份认证,而且不能访问会话状态。
    // console.php 文件是定义全部基于闭包的控制台命令的地方。
    // 每一个闭包都被绑定到一个命令实例而且容许和命令行 IO 方法进行简单的交互。
    // 尽管这些文件没有定义 HTTP 路由,但它也将基于控制台的入口点(路由)定义到应用程序中。
    // channels.php 用来注册你的应用支持的全部的事件广播渠道的地方。
storage/
    // storage 目录包含编译的 Blade 模板、基于文件的会话和文件缓存、以及框架生成的其余文件。
    // 这个目录被细分红 app、framework 和 logs 三个子目录。
    // app 目录能够用来存储应用生成的任何文件。
    // framework 目录用来存储框架生成的文件和缓存。
    // logs 目录包含应用的日志文件。
tests/
vendor/
    // 目录包含了你的 Composer 依赖包

四、数据迁移

参考地址:https://learnku.com/docs/laravel/5.5/migrations/1329
数据库迁移就像是数据库的版本控制,可让你的团队轻松修改并共享应用程序的数据库结构。
迁移一般与 Laravel 的数据库结构生成器配合使用,让你轻松地构建数据库结构。
若是你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可让你再也不须要作这样的事情。web

4.一、生成迁移文件

使用 Artisan 命令 make:migration 来建立迁移:shell

php artisan make:migration create_users_table

新的迁移文件会被放置在 database/migrations 目录中。
每一个迁移文件的名称都包含了一个时间戳,以便让 Laravel 确认迁移的顺序。数据库

4.二、修改迁移文件

迁移类一般会包含两个方法:up 和 down。
up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操做。
主要字段:https://learnku.com/docs/laravel/5.5/migrations/1329#columnsjson

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name')->comment('用户名');
        $table->string('pwd')->comment('用户密码');
        $table->enum('status', ['1', '2', '3', '4'])->default('1')->comment('状态:1注册 2激活 3违规 4注销 默认:1注册');
        $table->timestamp('last')->comment('最后一次登陆时间');
        $table->timestamps();
    });
}

4.三、运行迁移文件、生成数据表

php artisan migrate

五、控制器、模型层

除了在路由文件中以闭包的形式定义全部的请求处理逻辑外,还能够使用控制器类来组织此类行为。
控制器可以将相关的请求处理逻辑组成一个单独的类。
控制器被存放在 app/Http/Controllers 目录下。
建立对应的控制器:bootstrap

php artisan make:controller UsersController

建立对应的模型层:api

php artisan make:model Users

若是你使用了路由模型绑定,而且想在资源控制器的方法中使用类型提示,你能够在生成控制器的时候使用以下命令:

php artisan make:controller UsersController --resource --model=Users

六、路由

全部的 Laravel 路由都在 routes 目录中的路由文件中定义,这些文件都由框架自动加载。
routes/web.php 文件用于定义 web 界面的路由。
这里面的路由都会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。
routes/api.php 文件中的路由都是无状态的,而且被分配了 api 中间件组。
大多数的应用构建,都是以在 routes/web.php 文件定义路由开始的。
能够经过在浏览器中输入定义的路由 URL 来访问 routes/web.php 中定义的路由。

剩下的明天在写。。。。。
相关文章
相关标签/搜索