$collection = collect([ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ]); $keys = $collection->keys(); $keys->all(); // ['prod-100', 'prod-200']
$collection = collect([ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ]); $keys = $collection->keys(); $keys->all(); // ['prod-100', 'prod-200']
はじめに 思ったより数が多かったので、3回に分けることにしました。 目次 【5.5対応版】 Laravel の Collection を使い倒してみたくなった 〜 サンプルコード 115 連発 1/3(本記事) 【5.5対応版】 Laravel の Collection を使い倒してみたくなった 〜 サンプルコード 115 連発 2/3 【5.5対応版】 Laravel の Collection を使い倒してみたくなった 〜 サンプルコード 115 連発 3/3 概要 Laravel には、Collection という、配列のラッパークラスがあります。 Laravel 標準の ORM である Eloquent で複数レコードを取得する際に、この Collection のインスタンス (正確には Collection を継承したクラスのインスタンス) で返ってきたりしますが、もちろん、アプリ
はじめに はじめまして、オープンロジのエンジニアで @ttaka と申します。 この記事は OPENLOGI Advent Calendar 2017 の8日目になります。 さて、弊社サービスのサーバーサイド開発には、 PHP のフレームワークである Laravel が使われています。今回はその Laravel の ORM である Eloquent を使う際に、ちょっとハマりそうなポイントをいくつかご紹介したいと思います。 ハマりポイント 論理削除トレイトはテーブルの結合先では動作しない 論理削除自体には賛否ありますが、 Eloquent には標準でその機能が提供されています。 例えば、次のような論理削除を使用している User と Profile クラスがあるとします。 class User extends Model { use SoftDeletes; public function
概要 特定のモデルを削除した際に、関連するモデルを同時に削除する方法について。 前提となる条件 Laravel学習目的で開発した monelytics のソースコードをベースに説明を進める。ソースコードは GitHub を参照。 PHP 5.5.21 Laravel 4.2 実装 テーブル構成 ActivityCategoryGroupモデルは複数のActivityモデルを所有する (※説明を簡略化するため、ここでは最小限のカラムのみ記載する)。 CREATE TABLE IF NOT EXISTS `monelytics`.`activity_category_groups` ( `id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) CREATE TABLE IF NOT EXISTS `monelyt
public function rules() { return [ 'name' => [ 'required', Rule::unique('countries')->whereNull('deleted_at') ] ]; } 2. カスタムバリデーションでEloquent ORMを使う Laravel5でカスタムバリデーションを参考にするとできる。今はめんどくさいけど、Laravel 5.5. Custom Validator Rulesによると、5.5で楽になりそう また、existsについても同じように、「削除したのにバリデーションが通ってしまう」現象が起きるので、同様の処置が必要です。 ->delete()メソッドを使うと孫が消えてくれない 論理削除のときにDelete on Cascade的なことをやりたいときの話 Country < User < Postのリレーションを
イントロダクションIntroduction Eloquent ORMはLaravelに含まれている、美しくシンプルなアクティブレコードによるデーター操作の実装です。それぞれのデータベーステーブルは関連する「モデル」と結びついています。モデルによりテーブル中のデータをクエリできますし、さらに新しいレコードを追加することもできます。The Eloquent ORM included with Laravel provides a beautiful, simple ActiveRecord implementation for working with your database. Each database table has a corresponding "Model" which is used to interact with that table. Models allow you
[FuelPHPのORMでinsert前とかをフックして何か処理をする (´・ω・`) - 杏z 学習帳 を見て、Laravel の Model Event を思い出したので書いておきます。 上記みたいに Model をあれやこれやする前後に処理をはさみたい! ということがあると思います。Laravel には Model Event という仕組みが用意されていて楽に書くことができます。 書き方 インサートする前にログを出力したい場合です。 <?php class Sample extends Eloquent { // boot をオーバーライド protected static function boot() { parent::boot(); // インサート前なので creating メソッドを定義 self::creating(function($ribbit) { Log::in
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く