Mohammed Saqib Rajput
Mohammed Saqib Rajput

Reputation: 1370

How to get keys name from array in laravel

I want to get my table's column name. when i use model::all();

Users::all();

Illuminate\Database\Eloquent\Collection Object 
(
    [items:protected] => Array
        (
            [0] => Users Object
                (
                    [table:protected] => users
                    [hidden:protected] => Array
                        (
                            [0] => password
                            [1] => remember_token
                        )

                    [fillable] => Array
                        (
                        )

                    [connection:protected] => 
                    [primaryKey:protected] => id
                    [perPage:protected] => 15
                    [incrementing] => 1
                    [timestamps] => 1
                    [attributes:protected] => Array
                        (
                            [id] => 1
                            [first_name] => Mohammed Saqib
                            [last_name] => Rajput
                            [email] => [email protected]
                            [dob] => 2015-06-18 00:00:00
                            [mobile] => 03006710419
                            [status] => inactive
                        )

                    [original:protected] => Array
                        (
                            [id] => 1
                            [first_name] => Mohammed Saqib
                            [last_name] => Rajput
                            [email] => [email protected]
                            [dob] => 2015-06-18 00:00:00
                            [mobile] => 03006710419
                            [status] => inactive
                        )

                    [relations:protected] => Array
                        (
                        )

                    [visible:protected] => Array
                        (
                        )

                    [appends:protected] => Array
                        (
                        )

                    [guarded:protected] => Array
                        (
                            [0] => *
                        )

                    [dates:protected] => Array
                        (
                        )

                    [touches:protected] => Array
                        (
                        )

                    [observables:protected] => Array
                        (
                        )

                    [with:protected] => Array
                        (
                        )

                    [morphClass:protected] => 
                    [exists] => 1
                )

        )

)

Upvotes: 17

Views: 92001

Answers (2)

Renan Coelho
Renan Coelho

Reputation: 1449

Now you can just use the ->keys() method from a collection.

$fruits = collect(['orange' => 15, 'lemon' => 75]);

$keys = $fruits->keys();

// ['orange', 'lemon']

See more at https://laravel.com/docs/master/collections#method-keys

Upvotes: 20

lukasgeiter
lukasgeiter

Reputation: 152890

You can make use of array_keys to get all attributes from a model.

$users = Users::all();
$user = $users->first();
$attributes = array_keys($user->toArray());

Alternatively you can use this approach to get the column names based from a certain table in your database.

Upvotes: 31

Related Questions