Laravel - 基础
1、使用 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服务;
或者:注释掉这行;
# 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镜像源,可以执行尝试以下几种:
更换成阿里镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
更换成Laravel China镜像:
composer config -g repo.packagist composer https://packagist.laravel-china.org
更换成中国全量镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
2、配置域名、然后去访问、出现如下表示安装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/
3、了解项目目录
.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 依赖包
4、数据迁移
参考地址:https://learnku.com/docs/laravel/5.5/migrations/1329
数据库迁移就像是数据库的版本控制,可以让你的团队轻松修改并共享应用程序的数据库结构。
迁移通常与 Laravel 的数据库结构生成器配合使用,让你轻松地构建数据库结构。
如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。
4.1、生成迁移文件
使用 Artisan 命令 make:migration 来创建迁移:
php artisan make:migration create_users_table
新的迁移文件会被放置在 database/migrations 目录中。
每个迁移文件的名称都包含了一个时间戳,以便让 Laravel 确认迁移的顺序。
4.2、修改迁移文件
迁移类通常会包含两个方法:up 和 down。
up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操作。
主要字段:https://learnku.com/docs/laravel/5.5/migrations/1329#columns
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.3、运行迁移文件、生成数据表
php artisan migrate
5、控制器、模型层
除了在路由文件中以闭包的形式定义所有的请求处理逻辑外,还可以使用控制器类来组织此类行为。
控制器能够将相关的请求处理逻辑组成一个单独的类。
控制器被存放在 app/Http/Controllers 目录下。
创建对应的控制器:
php artisan make:controller UsersController
创建对应的模型层:
php artisan make:model Users
如果你使用了路由模型绑定,并且想在资源控制器的方法中使用类型提示,你可以在生成控制器的时候使用如下命令:
php artisan make:controller UsersController --resource --model=Users
6、路由
所有的 Laravel 路由都在 routes 目录中的路由文件中定义,这些文件都由框架自动加载。
routes/web.php 文件用于定义 web 界面的路由。
这里面的路由都会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。
routes/api.php 文件中的路由都是无状态的,并且被分配了 api 中间件组。
大多数的应用构建,都是以在 routes/web.php 文件定义路由开始的。
可以通过在浏览器中输入定义的路由 URL 来访问 routes/web.php 中定义的路由。
6.1、基本路由
1、构建基本路由只需要一个 URI 与一个 闭包 ,这里提供了一个非常简单优雅定义路由的方法:
// 访问:http://www.a.cc/first
Route::get('/first', function () {
return 'Hello World';
});
2、绑定指定的控制器与方法
// 访问: http://www.a.cc/user
Route::get('/user', 'UserController@index');
3、返回视图层文件
// 访问:http://www.a.cc/show
// view中参数1、必填、指定模版的名称
// view中参数2、可选、数组类型、
Route::get('/show', function(){
return view('Users.login', ['name'=>'名字'] );
});
6.2、可用的路由的方法
路由器允许你注册能响应任何 HTTP 请求的路由:
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
有的时候你可能需要注册一个可响应多个 HTTP 请求的路由,这时你可以使用 match 方法,也可以使用 any 方法注册一个实现响应所有 HTTP 请求的路由:
Route::match(['get', 'post'], '/', function () {
//
});
Route::any('/', function () {
//
});
剩下的有时间在写。。。。。
Laravel - 基础的更多相关文章
- laravel基础课程---16、数据迁移(数据库迁移是什么)
laravel基础课程---16.数据迁移(数据库迁移是什么) 一.总结 一句话总结: 是什么:数据库迁移就像是[数据库的版本控制],可以让你的团队轻松修改并共享应用程序的数据库结构. 使用场景:解决 ...
- laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...
- laravel基础课程---14、表单验证(lavarel如何进行表单验证)
laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...
- laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)
laravel基础课程---13.数据库基本操作2(lavarel数据库操作和tp对比) 一.总结 一句话总结: 非常非常接近:也是分为两大类,原生SQL 和 数据库链式操作 学习方法:使用时 多看手 ...
- laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)
laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...
- laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)
laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...
- laravel基础课程---10、数据库基本操作(如何使用数据库)
laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...
- laravel基础课程---9、视图(lavarel的模板语法和tp相比怎样)
laravel基础课程---9.视图(lavarel的模板语法和tp相比怎样) 一.总结 一句话总结: lavarel的模板语法比thinkphp好用很多:和html代码配合的更好 lavarel比t ...
- laravel基础课程---8、laravel响应和视图(响应是什么)
laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...
- laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)
laravel基础课程---7.文件处理.闪存.cookie(cookie原理和使用场景) 一.总结 一句话总结: 页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存 ...
随机推荐
- [ex-kmp] HDU 2019 Multi-University Training Contest 5-string matching
string matching Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others ...
- [CS充实之路] CS50 WEEK 1
前言 大学电子专业,幸好自学了JAVA,遂有幸工作了三年,但这期间一直在焦虑,一个是基础不扎实的担心,另一个是未来方向的不确定.去年开始终于下定决心,一方面走一遍CS之路,巩固知识体系,另一方面部署自 ...
- 17.用cmd创建maven web工程
1.跳转到需要创建maven工程的目录,输入 mvn archetype:generate 2.找到webapp的那一项,输入它的序号(这里是10) 3.输入groupId,artifactId,ve ...
- USCOSII
一.要求 下载附件,尝试在vc6.0中编译运行ucos 下载附件,尝试在vs2017中编译运行ucos,给出你遇到的问题和解决方式 ucos是如何分层的? HAL都有哪些代码? 分析任务是如何切换的? ...
- 创建Windows10无人值守(自动应答文件)教程
一.准备工作 系统要求: Windows10 1809版本 工具下载: 镜像:Windows10,任何一个版本都可以,我使用的是1909版本 ed2k://|file|cn_windows_10_bu ...
- D. Little Artem and Dance(带环模拟 + 规律)
D. Little Artem and Dance Little Artem is fond of dancing. Most of all dances Artem likes rueda - Cu ...
- P1044 栈(递归、递推、卡特兰、打表)
P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要 ...
- 关于C#三层架构中的“分页”功能
新手上路,请多指教! 今天将分页功能实现了,要特别感谢坐在前面的何同学的指点,不胜感谢!功能的实现采用了三层架构的方式实现该功能,简述如下: 界面: DAL层有两个方法:“当前所在页”和“总页数” 这 ...
- Kubernetes Pod钩子
目录 1.Pod容器钩子最终目的 2.何为Pod容器钩子 3.基于PostStart演示 4.基于PreStop演示 5.优雅停止Java应用 1.Pod容器钩子最终目的 之前在生产环境中使用dubb ...
- Mysql索引、explain执行计划
1.索引的使用场景 哪些情况使用索引: 1.主键自动建立唯一索引 2.频繁作为查询条件的字段应该创建索引 where 3.多表关联查询中,关联字段应该创建索引on两边都要创建索引 select * f ...