エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

Laravel

【Laravel】dd関数は実際何をしてる?+名前の意味とは【260日目】

ddとは よくLaravelで、プログラムが正しく動いているか試すために、 dd($some_value); というコードを書いて、$some_valueの値をチェックしたりします。 じゃあ、この関数は何をしているのでしょう? そもそもこの名前は何の略? コード vendor/laravel/fra…

【Laravel】コレクションの値を$model->value = xxで変形させるミューテター【255日目】

参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public function setFirstNameAttribute($value) { $this->attributes['first_name'] =…

【Laravel】Bladeに書く{{}}って何してるの?【244日目】

{{}}ってなんだろう? よく、Bladeを書くときに、 {{ $user->name }} みたいな書き方をすると思います。 データを取得して出力するのはわかりますが、具体的に何をしてるのでしょう? echoとe関数を呼ぶ 上のコードですが、Laravelを通して変換すると、次の…

【Laravel】ファサードはなんなのかをざっくりメモ書き【236日目】

注意 私のざっくり理解のメモ書きです。 ファサード Laravelのコード全体に、便利なインスタンス用意してくれてるやつ。 起動時にインスタンス用意してくれるやつ。 View::XXX(); こんな感じに、インスタンス化もパス指定もしてないのに使えた関数あったよね…

Laravelでテーブル名でModelを作る理由を考える【231日目】

あくまで考察 あくまで考察。予想です。 私はこれでいいと思った $user = new Model('Users'); こんな感じにテーブル名指定すればいいんじゃね?って。 User.phpを作るにしても、その時点でユーザーはDB意識してるじゃんって。 DB意識させない 最初にUser.ph…

【Laravel】bladeでforeachの回数カウント3種類($loop使えない用)【228日目】

こんなとき使う @foreach($titles as $title) @if($index == 4) @endif @endforeach こんなふうに、4番目のデータのときにだけなにかをしたい場合。 書き方いくつかあります。 $loop変数を使う(Laravel5.3以上) @foreach ($titles as $title) @if ($loop->in…

【Laravel】POSTで送ったRequestを配列で処理したい【213日目】

こんな時に使う フォームでCheckBoxなどのデータをPOSTで受け取る。 Laravel側でRequestを受け取る。 その受け取ったデータをこんなふうに取得したい。 [ 'username' => 'uiro', 'item_number => '5' ] こうかく function doPost(Request $request) { $reque…

【Laravel】url()->previous()で前のページが取得出来ない時の対応【208日目】

直前に見ていたページの取得方法はこちら willow710kut.hatenablog.com こんな時につかう 対象のページを初めて見た時 新しいページ、新しいタブで開いた時 この時は、直前に見ていたページが取得出来ない。 その時の対応をどうするか。 別なページをセット…

【Laravel】実行したor実行する前のSQL文を確認する【205日目】

こんな時に使う Laravelで書いたSQLの文を確認したい。 $articles = Article::all(); これとか実際にはどんなSQL文で取得したか知りたい 実行後に確認 // これから書くSQL文をLogで取得出来るようにする \DB::enableQueryLog(); // SQL文実行 $articles = Ar…

【Laravel】モデルが更新した時に、関数を動かす【193日目】

こんなとき使える ユーザー情報を更新する時に、イベントを発行する。 User::updated(function($user) { if ($user->isDirty('email')) { Mail::to($user)->send(new UserMailChanged($user)); } }); これで、ユーザー情報を変更して(updatedイベント)、 …

【Laravel】直前にアクセスしたページのURLを取得する【188日目】

引数を入れた時どうなるかも書きました 取得失敗した時の動作が書かれているよ。 willow710kut.hatenablog.com 直前にアクセスしたURL、ページに来るためのリクエスト元のURL こうかく url()->previous(); 結果 "http://blog.hatena.ne.jp/willow710kut" み…

【Laravel】パスワード入力時に、確認の入力をバリデーションする。【185日目】

こんな時に使う よく新規会員登録とかで見かける、 パスワード入力 パスワードの確認 とかで、同じパスワード入れないと通らないあれ。 こう書く id='xxx'のバリデーションに、 confirmedを設定 id='xxx__confirmation'を、確認用のformとして用意する id='x…

【Laravel】データベースから取り出したデータを、型変換してから取り出したい【183日目】

値を取り出す時に、事前キャストしたい ユーザーが管理者のときに○○したいという時に、以下のようにコードを書きたい $user = new User('uiro'); if($user->is_admin === true) { .... } でも、データベースから取得した$userは0,1で is_adminが入ってる・・…

【Laravel】コレクション内の多重配列を合体させて、一次配列に【182日目】

こんな時に使える コレクション内に、[1,2,3]、[4,5,6]とかの配列を、一個にくっつけたい。 普段なら、foreachで取り出して、一個一個結合させる必要がある。 使うもの collapse() コード $collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); $colla…

【Laravel】Formファサードのpasswordのoptionがきかないのは【181日目】

Formファサード Form::text('email', null, ['id' => 'email', 'class' => 'mail', 'tabindex' => 1]) こんなやつ これだと上手く動かない Form::password('password', null, ['id' => 'password', 'class' => 'pass', 'tabindex' => 1]) この時、formタグに…

【Laravel】route.phpの書き順で動かなくなるパターン。例題あり。【180日目】

書き方間違えてないはず、なぜか反応しない // ① Route::get('/', 'TopController@index')->name('top'); // ② Route::get('/{name}', 'ProfileController@detail)->name('profile_detail'); // ③ Route::get('/list', 'ProfileController@list')->name('pro…

Laravel+MySQLでtinyintの扱い【157日目】

desc table_nameでなにこれとなる なぜ1だったり、4だったり指定されているのかと思って調べてみた。備忘録。 tinyintとは 1byteの数値。 符号なしなら、0から255、符号ありなら、-128から127まで。 tinyint(1)は mysqlの時だけ、0or1を指します。つまり、bo…

【Laravel】make:migrationで、Schema::createを自動挿入【145日目】

現状 php artisan make:migrateをすると出来るファイルはup()とdown()に何も書いていない php artisan make:migrate create_new_tables

laravelの環境構築で参考にしたサイト一覧【125日目】

基本形 qiita.com Nginx + php-fpmの環境を作ろうとしたらPHPファイルがダウンロードされる utano.jp mcryptをphp7.2でもインストールする方法 blog.apar.jp ぼやき とりあえずわからないところは極力削って環境構築。 わからないままコピペよくない。 一応…

Laravel5.2以降で二重配列にバリデーションを入れる方法【117日目】

配列にバリデーションをかけたい arrayX = [['key' => 10], ['key' => 'aaa']] こんな感じのやつ。 arrayのkeyに対して、数値であるとバリデーションをかけたいやつですね。 公式ドキュメント バリデーション 5.3 Laravel 配列形式のフィールドをバリデーシ…

LaravelのsortByとorderByの使い所【84日目】

sortByとorderByの違いって? sortBy()の使い所は、コレクションをソートする時に使います。 orderBy()はwhere()とかと同じで、データベースから取得する時に使います。 使い方の違い $query->get()->sortBy('id'); $query->orderBy('id')->get(); この2つの…

Laravelで『ページ3』や『次へ』や『前へ』というページネーションの作り方【77日目】

参考 ペジネーション 5.1 Laravel 手順 ControllerでpaginateをつかってDBからデータ取得。 Viewでrenderで呼び出す(renderは{!! !!}のカッコで囲むこと) コード public function index() { $users = DB::table('users')->paginate(15); return view('user.i…

【Laravel】DBのデータを変形させて$model->valueで取るアクセサー【76日目】

反対のミューテターに関してはこちらの記事へ willow710kut.hatenablog.com 参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public fun…

Laravelで多対多のリレーションを組む【71日目】

多対多とは ある人は、いくつかのグループに所属しています。 あるグループは、いくつかの人で構成されてます。 これが多対多です。お互いが複数の対象を持ってますね。 これをデータベースで表現すると、中間テーブルと言うものが必要です。 データベースだ…

Laravelでリレーション先のカラムでwhereする方法【68日目】

参照元 Eloquent:リレーション 5.1 Laravel 手法 $posts = Post::whereHas('user', function ($query) { $query->where('name', 'uirou'); })->get(); これでuserのnameがuirouのPostを取得することが出来ます。 前回間違ったものを書いたので訂正。 日記 …

(仮)Laravelでリレーション先のカラムでwhereする方法【66日目】

参照元 Eloquent:リレーション 5.1 Laravel 手法 $users = App\User::with(['posts' => function ($query) { $query->where('id', 10); }])->get(); これで、postsのid = 10を書き込んだユーザーが取り出せる。 思いっきり間違えてました。正しくはこちら。…

OrderByでnullをascの最後尾に置く書き方【62日目】

Mysqlでnullをorderbyしてみた id|number| 1 | 1| 2 | 2| 3 |null| 4 | 4| 5 | 5| これのnumberを昇順(asc)でorderbyしたらどうなるか。 id|number| 3 |null| 1 | 1| 2 | 2| 4 | 4| 5 | 5| ナンデダヨ。 どうして? MySQL :: MySQL 5.6 リファレンスマニュア…

Laravelで過去に詰まった点を穴開き形式でまとめ。

はじめに これは Laravel Advent Calendar 2017 12日目の記事です。 前日は@kawaxさんの1コントローラー1アクション - Qiitaでした。 Web系来てまだ半年の私なので、コントローラーの肥大化は何度も経験してるのに、どう変えればいいのかわからない…… 一度振…

hasOneとhasManyとbelongsTo【56日目】

リレーションについてはこれ Eloquent:リレーション 5.1 Laravel こんなんできる 任意のポストについたコメントを取得する DB posts id|post| 1|aaa| 2|bbb| comments id|post_id|string| 1|1|aaaa| 2|1|iiii| 3|2|uuuu| ポスト1には、aaaa,iiiiの2つのコメ…

Laravelのバリデーションで『○○の時〜』をする【55日目】

バリデーション参考 5.1 バリデーション 5.1 Laravel 5.3 バリデーション 5.3 Laravel もし○○の時に、入力必須にする 例)もしアクティブユーザーならば、年齢を入力必須にする 'age' => 'required_if:is_active,true' unique条件にwhereを付け足す [1サーバ…