はらぺこらいおん

日々、思ったことを。

Laravelの開発Tips

bladeで変数の一覧ダンプしたい時

{{ dd(get_defined_vars()['__data']) }}

URLが自動改行されない時

URLが自動改行してくれない問題

word-break: break-all;

empty/issetなどのtrue/false条件がわからない時

PHP: PHP 型の比較表 - Manual

bladeで改行したい時

LaravelのBladeで改行したいとき

{!! nl2br(e($content)) !!}

seedで改行コードが入らない場合

「'」ではなく「"」で囲む。

'content' => "aaa\nbbb"

migrateでエラーが発生

Laravel 5.5 - 1071 specified key was too long max key length is 767 bytes - HDTuto.com

[Illuminate\Database\QueryException]

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique ` users_email_unique`(`email`))

app/Providers/AppServiceProvider.phpに以下を追加。

    public function boot()

    {

        Schema::defaultStringLength(191);

    }

seedが実行できない

ReflectionException  : Class XXXTableSeeder does not exist

以下を実行する必要がある。

$ composer dump-autoload

特定のキーを使ったArrayListを取得する

php - Eloquent column list by key with array as values? - Stack Overflow

$users = User::all()->keyBy('name')->toArray();

ログインした際にログインしたページにリダイレクトする

【Laravel】ログインした後、固定ページに飛ばさずにログインボタンを押した画面に戻りたい。

app/Http/Controllers/Auth/LoginController.phpに以下を追加。

    public function showLoginForm()
    {
        session(['url.intended' => $_SERVER['HTTP_REFERER']]);
        return view('auth.login');
    }

メール送信できない

Stream Socket Enable Crypto Error Laravel

    'stream' => [
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ],
    ],

実行したSQLクエリーを取得したい時

DB::enableQueryLog();
# SQL here
dd(DB::getQueryLog());

Laravelインストール時にバージョンを指定したい時

$ composer create-project --prefer-dist laravel/laravel projectname "5.5.*"

リクエストヘッダーの取得を行いたい時

$header = $request->header('HeaderName');