laravel:Wie bekomme ich den Spaltennamen des eloquenten Modells? [duplicate]

Lesezeit: 2 Minuten

Benutzeravatar von Jatin Parmar
Jatin Parmar

Ich verwende Laravel 5.2, ich möchte den Namen aller Spalten (Attribute) des ausgewählten eloquenten Modells erhalten. Gibt es eine Möglichkeit, dies zu tun?

Folgendes ist mein Code in der Controller-Methode

    if($request->method=="edit")
    {
        /*we are in edit mode details of given news ID should be attached*/
        $curNews=News::find($request->newsID);
        if($curNews==null)return back()->withErrors(["Unable to Edit News:No Data Found For Given News ID"]);

        foreach((array)$curNews->attributes as $key=>$val)
        {
            $data[$key]=$val;
        }

    }

    return view('adminarea.news.news-addedit',$data);

  • Bitte zeigen Sie einen Code an

    – AddWeb Solution Pvt Ltd

    22. August 2017 um 12:52 Uhr

  • an @aynber, ich möchte nur den Spaltennamen als Array

    – Jatin Parmar

    22. August 2017 um 12:56 Uhr

  • @joy, es sind die Grundlagen von PHP, Sie haben bereits ein Objekt, das hat fieldName = 'some data'also ist es keine Laravel-Frage – es geht nur um die Grundlagen von PHP (wie man Attribute von Objekten erhält), Entschuldigung, ich werde Ihre Frage ablehnen

    – Zahl8er

    22. August 2017 um 13:01 Uhr


  • @num8er, du hast Recht, aber es ist eine Plattform zum Lernen

    – Jatin Parmar

    22. August 2017 um 13:02 Uhr

$columns = Schema::getColumnListing('users'); // users table
dd($columns); // dump the result and die

  • Schema oben importieren – verwenden Sie Illuminate\Support\Facades\Schema;

    – Sanjay Mundhra

    27. April 2020 um 5:50 Uhr

  • So erhalten Sie Spaltennamen aus der Tabelle, nicht aus dem Modell – was in Frage gestellt wurde. Wenn Modelltabellen dynamisch sind und sich ändern können, ist dies keine gute Lösung.

    – Kristaps J.

    20. August 2020 um 8:09 Uhr

  • Funktioniert nicht in 7.x

    – J.Robinson

    3. Dezember 2020 um 17:52 Uhr

  • Aus irgendeinem seltsamen Grund begann es mit der automatischen Sortierung von Schlüsseln in alphabetischer Reihenfolge. \array_keys( $model->getAttributes() ) funktioniert bei mir

    – Sumit Wadhwa

    21. Dezember 2020 um 6:40 Uhr

  • Für neuere Laravel-Versionen (in meinem Fall 5.8) verwenden Sie einfach: use Schema; Der Pfad mit Illuminate\Support\ etc. funktioniert nicht.

    – Römisch

    10. Februar 2021 um 10:45 Uhr

Wenn Sie die Namen Ihrer Attribute erhalten möchten, können Sie dies versuchen

$item = News::find($request->newsID);

    $attributes = array_keys($item->getOriginal());
// or 
$attributes = array_keys($item->getAttributes());

  • Wenn es sich um eine Sammlung handelt, verwenden Sie $items->first()->getAttributes()

    – Namal

    22. Juni 2020 um 7:21 Uhr

  • Dies ist ein besserer Weg als die Verwendung von Schema.

    – Yan Zhao

    27. Juni 2021 um 14:13 Uhr

Ich weiß nicht, ob ich Recht habe oder nicht, aber ich habe den folgenden Code überwunden, und es funktioniert für mich.

    if($request->method=="edit")
    {
        /*we are in edit mode details of given news ID should be attached*/
        $curNews=News::find($request->newsID);
        if($curNews==null)return back()->withErrors(["Unable to Edit News:No Data Found For Given News ID"]);

        foreach($curNews->toArray() as $key=>$val)
        {
            $data[$key]=$val;
        }

    }

    return view('adminarea.news.news-addedit',$data);

1406070cookie-checklaravel:Wie bekomme ich den Spaltennamen des eloquenten Modells? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy