Laravel: Eloquent How to get property of model if column name contains a dash?

后端 未结 2 995
情话喂你
情话喂你 2021-02-08 16:56

I have the following in my root route:

$user = User::all();
return $user->column-one;

Which returns the exception Use of undefin

相关标签:
2条回答
  • 2021-02-08 17:30

    After digging through the source code for the eloquent model I found the magic method __get and learned that it was just a wrapper for the public function getAttribute which takes a string thus I'm now able to retrieve the column via $user->getAttribute('column-one');.

    Edit:
    See @Alexandre Butynski's comment below for a better solution than the one I used.

    0 讨论(0)
  • 2021-02-08 17:31

    I haven't tried this, but am curious if using camelCase for it would work. That's how it works for things like routes. For example: $user->columnOne.

    I would however recommend renaming that column. That really doesn't map well in a PHP app.

    Update - Try this:

    $user->{"column-one"}

    0 讨论(0)
提交回复
热议问题