問題タブ [laravel-collection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2967 参照

laravel - Laravel コレクションを日付でフィルタリングする

以下のコードに$allZip["assigned_date"]は value があります2016-07-27 18:12:26created_atタイムスタンプフィールドでもあるフィールドと比較しようとすると、結果は空のコレクションになります。

データベースには、 value fromとzipvalue のフィールドに一致するフィールドを持つデータがあります。したがって、コレクション内の 1 つのアイテムを返す必要がありますが、代わりに空のコレクションを返します。なんで?$allZip["zip"]created_at2016-07-19 18:12:26

0 投票する
1 に答える
8823 参照

php - Laravel でのコレクションのクエリ

Laravel コレクションにクエリを実行すると、データベースにクエリが実行されるのではなく、既にフェッチされたものに対してクエリが実行されるということを正しく理解できましたか?

たとえば、コレクションを返すリレーションがあります。

次のコードはデータベースにクエリを実行しますか、それとも PHP 機能を使用してコレクションを操作しますか?

そして、私が理解している限り、関係を照会すると、すでにフェッチされた結果を操作する代わりに、データベースが照会されます。

基本的に、$role->permissions - 取得した結果を「オフライン」で処理しますが、$role->permissions() - データベースにクエリを実行します

一般的にどの方法がより効率的で、いつですか?

0 投票する
3 に答える
546 参照

laravel - コレクション内のより深いインデックス付き配列へのLaravel 5.2プッシュ

最初にコレクションを配列に変換せずに、コレクションのより深いインデックスに変更を加える/マージする方法はありますか?

$arrays をすべて含む 4 つのインデックスを持つ $collection があるので、配列にプッシュするには、次のようにする必要があります。

しかし、より良い方法があることを望んでいたので、先に進む前に元の $collection を再収集(...)する必要はありませんでした。以下のようなもので、うまくいかないことがわかっていますが、上記よりも厄介でないもの:

0 投票する
1 に答える
8516 参照

php - Laravel Eloquentの合計関係の列は、他の関係を介して

これらのモジュールがあるとしましょう:

  • クーポン
  • 注文 (.., Coupon_id)
  • アイテム (...、order_id、価格)

そして、それらの関係があります:

  • Coupon たくさんあり Orderます。
  • Order たくさんあり Itemます。

ここまでは順調ですね。

ここで、クーポンに属する注文に属するアイテムの価格を合計したいと考えています。そこで、次のようなことを考えました。

メソッドがリレーションのorders()a を返すため、うまくいきません。Collection

itemプロパティが保護されているというエラーが表示されます。Item私のモジュールとは関係がないことがわかりましCollectionprotected $items = [];

それで、いくつかの事実を明らかにした後、私の質問/問題は、に属する の をitems->priceどのように合計できますか?ordersCoupon


もちろん、次のような foreach ループを実行することで目標を達成できます。

しかし、私はよりクリーンなソリューションを探しています。誰?

0 投票する
4 に答える
10148 参照

php - Laravel 5コレクションの問題:等しくない場所

私は現在、ユーザーがExcelファイルを挿入できるモーダルに取り組んでいます。システムのタスクは、新しいデータベース レコードをアップロードおよび/または追加することです。レコードが新しい場合、またはデータベースに存在するレコードと同一の場合です。ただし、スラッグ列が名前列と同一でないレコードを削除するための削除機能も必要です。

現在、私はLaravel 5.3を使用しており、これが現在のコントローラーです。

上記の dd はすべての製品を返すため、コレクション クエリが正しく機能していません (このコレクションで実行しようとしている生の SQL については、以下を参照してください)。

これは製品モデルです:

これは、基本的にコレクションで使用するために探している PHPMyAdmin 生の SQL (動作します) です。

誰かがこの穴から私を助けてくれることを願っています。これを成し遂げるためだけに、私はインターネットの波を約12時間航海してきました.

~につJ

0 投票する
2 に答える
41 参照

php - 他のテーブルから数えます

guidnullではないデバイスの数を数えるのに問題があります。

ユーザーごとにすべてのショップを取得し、nulluser_idではないすべてのデバイスをカウントする必要があります。guid

私がするとき、それは動作します:

guidただし、 null ではない場所をカウントする必要があります。

reduceまた、別のアプローチがあるかどうかも知りたいです。

0 投票する
5 に答える
25583 参照

laravel - Laravelコレクションのn番目のアイテムにアクセスするには?

わざと重複した質問をすることで、すべてのルールを破っていると思います...

もう1つの質問には、受け入れられた回答があります。質問者の問題は明らかに解決しましたが、タイトルの質問には答えませんでした。

最初から始めましょう -first()メソッドはおおよそ次のように実装されています:

$collection[0]他の提案された方法を採用または使用するよりも明らかに堅牢です。

コレクション内に 20 個のアイテムがある場合でも、インデックス0またはインデックスを持つアイテムがない場合があります。15問題を説明するために、このコレクションをドキュメントから取り出してみましょう。

さて、 の n 番目の項目にアクセスするための信頼できる (できれば簡潔な) 方法はあり$keyedますか?

私自身の提案は、次のことです。

$keyed->last()しかし、これはいつでも間違った項目 () を与えます$n > $keyed->count()。n 番目のアイテムが存在しnull、それが単に動作が好きではない場合、どうすればそれを取得できfirst()ますか?

編集

明確にするために、このコレクションを考えてみましょう。

最初の項目は$col->first()です。2番目を取得する方法は?

$col->nth(3)を返す必要があります'c'(または'c'0 ベースの場合、それは と矛盾しfirst()ます)。$col[3]動作しません。エラーが返されるだけです。

$col->nth(7)null7 番目のアイテムがなく、4 つしかないため、戻る必要があります。$col[7]動作しません。単に返され'd'ます。

この質問は、「foreach オーダーで n 番目のアイテムを取得する方法は?」と言い換えることができます。一部の人にとってより明確であれば。