1 全局安裝
composer global require "laravel/installer"
2 創建項目
composer create-project --prefer-dist laravel/laravel common-system
laravel new common-system
php artisan make:auth
make:auth view,controller,route
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=common_system_laravel
DB_USERNAME=root
DB_PASSWORD=
migrate ??db
php artisan migrate
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 1000 bytes (SQL: alter table users
add unique
users_email_unique
(email
))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 1000 bytes
$table->string(‘email’, 30)->unique();
mix
for windows:
npm install --no-bin-links
for linux:
npm install
获取最近一次执行的sql
DB::enableQueryLog();
$users = $this->user->search("david");
var_dump($users->toArray());
$queries = DB::getQueryLog();
var_dump($queries);
$last_query = end($queries);
var_dump($last_query);
echo $last_query['query'];
array (size=3)
'query' => string 'select * from `users` where `user_id` like ? order by `user_id` desc' (length=68)
'bindings' =>
array (size=1)
0 => string '%david%' (length=7)
'time' => float 13
使用DebugBar
https://github.com/barryvdh/laravel-debugbar
但是,如果是ajax请求,debugbar不会输出ajax的sql
use Barryvdh\Debugbar\Facade as Debugbar;
Debugbar::error('my test!', 'my_label');
發送email
-
安裝guzzle 庫
composer require guzzlehttp/guzzle
-
修改.env配置
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=xxx
MAIL_FROM_NAME=系統管理員
- 創建mailable
php artisan make:mail NewAccount
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.newaccount');
}
- 发送示例
public function testSendMail()
{
echo "start send mail<br>";
// Send mail...
$toEmail = "xxx@xxx.com";
Mail::to($toEmail, 'davidhuang')->send(new NewAccount());
echo "end send mail<br>";
}
- cache
cache tag 不支持file和database驱动。如果将cache设置了tag,就必须通过tag获取
Cache::tags([$tag_name])->put($cache_key, $list, $minutes);
if (Cache::has($cache_key)) {
echo "use cache";
return Cache::get($cache_key);
}
上述代码是不会用到cache的。必须加上 Cache::tags([$tag_name])
- phpunit
phpunit 中获取env或config配置信息需要注意
如果获取queue的配置信息,例如
echo env('QUEUE_DRIVER') . PHP_EOL;
echo config('queue.default') . PHP_EOL;
即使env设置的是database,但是在phpunit总是返回sync
!
如果通过web访问,则会返回实际的配置值。
- redis 设置
如果redis不需要密码,则.env不需要设置REDIS_PASSWORD=
整行都不要了。
如果要指定redis database,要添加REDIS_DATABASE=9
并修改database.php
中的redis
配置
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DATABASE', 0),
],
],