Laravel bekommt einen Ausweis aus der Sammlung

$collection = Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->get();        
        echo "<pre>";
        print_r($collection);
        echo "</pre>";
        exit();

So geben Sie die ID aus dieser Sammlung zurück

Weil ich für diese bestimmte ID aktualisieren möchte

1
My testing 17 Apr. 2018 im 14:04

5 Antworten

Beste Antwort

Wenn user_id unique ist, verwenden Sie first() anstelle von get()

$collection = Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->first();

Dann greifen Sie auf id like zu

$id = $collection->id;

Andernfalls müssen Sie loop über das Sammlungsarray id von einem einzelnen Objekt aus auf id zugreifen.

2
Sohel0415 17 Apr. 2018 im 11:11

Sie können mit dieser Abfrage einfach aktualisieren, ohne get auszuführen:

Test::whereDate('created_at', '=', $today)
          ->where('cuid', $user->id)
          ->where('month', date('m'))
          ->update([
            'column' => 'columnValue' 
           ]);

Übrigens, Sie behaupten, dass die ID eindeutig sein sollte, aber ich finde das angesichts dieser Abfrage etwas schwer zu glauben. Stellen Sie also sicher, dass Sie mit dieser Annahme absolut 100% korrekt sind.

1
apokryfos 17 Apr. 2018 im 11:11
$collection = Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->pluck(['id']);        
        echo "<pre>";
        print_r($collection);
        echo "</pre>";
        exit();

Auf diese Weise erhalten Sie nur IDs aller Werte

0
Syed Abdur Rehman Kazmi 17 Apr. 2018 im 11:11
   Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->pluck('id')->toArray();

Wenn Sie wissen, dass es einzigartig ist:

   Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->first()->id;
0
parastoo amini 17 Apr. 2018 im 11:13

Sie verwenden get (), das die Sammlung zurückgibt, auch wenn nur ein Ergebnis vorliegt. Entweder durchlaufen Sie sie oder ersetzen Sie get () durch first (). Beispiel: Wenn Sie versuchen, ein einzelnes Element abzurufen.

$collection = Test::whereDate('created_at', '=', $today)->where('cuid', $user->id)->where('month', date('m'))->first();        
        echo "<pre>";
        print_r($collection->id);
        echo "</pre>";
        exit();
0
Saurav 17 Apr. 2018 im 11:15