laravel5 入门

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

  1. 安裝guzzle 庫
    composer require guzzlehttp/guzzle

  2. 修改.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=系統管理員
  1. 創建mailable
    php artisan make:mail NewAccount
/**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('emails.newaccount');
    }
  1. 发送示例
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>";
    }
  1. 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])

  1. phpunit
    phpunit 中获取env或config配置信息需要注意
    如果获取queue的配置信息,例如
echo env('QUEUE_DRIVER') . PHP_EOL;
echo config('queue.default') . PHP_EOL;

即使env设置的是database,但是在phpunit总是返回sync

如果通过web访问,则会返回实际的配置值。

  1. 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),
        ],
    ],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值