laravel 开启 sql 日志
vim app/Providers/AppServiceProvider.php
use Illuminate\Support\Str;
.
.
.
public function boot()
{
.
.
.
// 只在本地开发环境启用 SQL 日志
if (app()->environment('local')) {
// 如果需要临时打印 sql ,则需要直接将以下代码放置到 sql 查询代码之前即可
\DB::listen(function ($query) {
\Log::info(Str::replaceArray('?', $query->bindings, $query->sql));
});
}
}
.
.
.
host文件夹位置
//Windows :
subl C:/Windows/System32/Drivers/etc/hosts
//MacOS
subl /etc/hosts
Laravel 项目搭建步骤
- composer 安装项目
composer create-project laravel/laravel Laravel --prefer-dist "5.5.*"
// 创建一个名为 sample 的应用
composer create-project laravel/laravel sample --prefer-dist "5.5.*"
- 修改 hosts
192.168.10.10 sample.test
Mac 下打开 Hosts 文件: subl /etc/hosts
Windows 下打开 Hosts 文件:subl C:/Windows/System32/Drivers/etc/hosts
- 新增站点
subl ~/Homestead/Homestead.yaml
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
- map: sample.test # <--- 这里
to: /home/vagrant/Code/sample/public # <--- 这里
databases:
- homestead
- sample # <--- 这里
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
- 重启虚拟机
cd ~/Homestead && vagrant provision && vagrant reload
视图部分:
- 使用 Yarn 对扩展包进行安装(在项目根目录下执行以下命令)
yarn install --no-bin-links
yarn add cross-env
- 安装完成之后,让我们对 Laravel 默认生成的 app.scss 文件进行编辑,删除此文件里的所有内容,只留下面一行,导入 Bootstrap:
resources/assets/sass/app.scss
// Bootstrap
@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
集成 Bootstrap 的 JavaScript 库
我们只需要在 app.js 中对其进行加载即可:
resources/assets/js/app.js
require('./bootstrap');
在我们重新运行 watch-poll 任务之后,app.js 文件将会被编译到应用的 public 文件夹下,然后再去引用 public/js 文件夹下的 app.js
- 每次检测到 .scss 文件发生更改时,自动将其编译为 .css 文件
npm run watch-poll
模型部分
- 使用 App/Models 命名空间
// 在项目根目录执行命令,创建 Models 文件夹
mkdir app/Models
// 移动默认的 User.php 模型
mv app/User.php app/Models/User.php
- 修改 User.php 文件,更改 namespace 为我们新创建的文件夹路径
app/Models/User.php
<?php
namespace App\Models;
- 编辑器全局搜索 App\User 替换为 App\Models\User
// 一般是4个文件
中文语言包部分
- 项目根目录下执行 composer 安装命令
composer require "overtrue/laravel-lang:~3.0"
- 修改配置文件配置
config/app.php
<?php
return [
.
.
.
// 修改语言为中文
'locale' => 'zh-CN',
// 修改时区为上海时区
'timezone' => env('TIMEZONE','Asia/Shanghai'),
.
.
.
];
添加辅助函数
- 根目录下执行
// linux 虚拟机下命令
touch app/helpers.php
- 在我们新增 helpers.php 文件之后,还需要在项目根目录下 composer.json 文件中的 autoload 选项里 files 字段加入该文件:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
],
# 默认没有 files 字段,需要手动添加
"files": [
"app/helpers.php" # <--- 这里
]
},
- 修改保存后运行以下命令进行重新加载文件即可:
composer dump-autoload
Laravel 项目安装步骤
- 先在虚拟机中运行以下命令来实现 Composer 安装加速
composer config -g repo.packagist composer https://packagist.laravel-china.org
- 修改 host 文件
- 新增站点
- 重新加载 Homestead.yaml
vagrant provision && vagrant reload
- 初始化项目
// 需要进入项目根目录之后执行
composer install
- 复制环境文件
cp .env.example .env
- 生成密钥
php artisan key:generate
- 初始化数据库
php artisan migrate --seed
Laravel 文件夹结构简介
文件夹名称 | 简介 |
---|---|
app | 应用程序的业务逻辑代码存放文件夹 |
app/Console | 存放自定义 Artisan 命令文件 |
app/Http/Controllers | 存放控制器文件 |
app/Http/Middleware | 存放「中间件」文件 |
bootstrap | 框架启动与自动加载设置相关的文件 |
composer.json | 应用依赖的扩展包 |
composer.lock | 扩展包列表,确保这个应用的副本使用相同版本的扩展包 |
config | 应用程序的配置文件 |
database | 数据库操作相关文件(数据库迁移和数据填充) |
node_modules | 存放 NPM 依赖模块 |
package.json | 应用所需的 NPM 包配置文件 |
phpunit.xml | 测试工具 PHPUnit 的配置文件 |
public | 前端控制器和资源相关文件(图片、JavaScript、CSS) |
readme.md | 项目介绍说明文件 |
resources | 应用资源 |
resources/assets | 未编译的应用资源文件(图片、JavaScript、CSS) |
resources/lang | 多语言文件 |
resources/views | 视图文件 |
routes/api.php | 用于定义 API 类型的路由 |
routes/channels.php | 事件转播注册信息 |
routes/console.php | 用于定义 Artisan 命令 |
routes/web.php | 用于定义 Web 类型的路由(重点,大部分情况下本书会用到) |
server.php | 使用 PHP 内置服务器时的 URL 重写(类似于 Apache 的 "mod_rewrite" ) |
storage | 编译后的视图、基于会话、文件缓存和其它框架生成的文件 |
storage/app | 目录可用于存储应用程序使用的任何文件 |
storage/framework | 目录被用于保存框架生成的文件及缓存 |
storage/logs | 应用程序的日志文件 |
tests | 应用测试相关文件 |
vendor | Composer 依赖模块 |
webpack.mix.js | Laravel 的前端工作流配置文件 |
yarn.lock | Yarn 依赖版本锁定文件 |
.gitignore | 被 Git 所忽略的文件 |
.env | 环境变量配置文件 |
resource 方法将遵从 RESTful 架构为用户资源生成路由。该方法接收两个参数,第一个参数为资源名称,第二个参数为控制器名称。
Route::resource('users', 'UsersController');
上面代码等同于:
// 显示所有用户列表的页面
Route::get('/users', 'UsersController@index')->name('users.index');
// 显示用户个人信息的页面
Route::get('/users/{user}', 'UsersController@show')->name('users.show');
// 创建用户的页面
Route::get('/users/create', 'UsersController@create')->name('users.create');
// 创建用户
Route::post('/users', 'UsersController@store')->name('users.store');
// 编辑用户个人资料的页面
Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit');
// 更新用户
Route::patch('/users/{user}', 'UsersController@update')->name('users.update');
// 删除用户
Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');
Eloquent 表命名约定
在该文件中,Eloquent Article 模型默认情况下会使用类的「下划线命名法」与「复数形式名称」来作为数据表的名称生成规则。如:
- Article 数据模型类对应 articles 表;
- User 数据模型类对应 users 表;
- BlogPost 数据模型类对应 blog_posts 表;
因此 Eloquent 将会假设 Article 模型被存储记录在 articles 数据表中。如果你需要指定自己的数据表,则可以通过 table 属性来定义,如:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $table = 'my_articles';
}
配置文件简要说明
文件名称 | 配置类型 |
---|---|
app.php | 应用相关,如项目名称、时区、语言等 |
auth.php | 用户授权,如用户登录、密码重置等 |
broadcasting.php | 事件广播系统相关配置 |
cache.php | 缓存相关配置 |
database.php | 数据库相关配置,包括 MySQL、Redis 等 |
filesystems.php | 文件存储相关配置 |
hashing.php | 加密算法相关设置 |
logging.php | 日志记录相关的配置 |
mail.php | 邮箱发送相关的配置 |
queue.php | 队列系统相关配置 |
services.php | 放置第三方服务配置 |
session.php | 用户会话相关配置 |
view.php | 视图存储路径相关配置 |
网友评论