Laravel: Eloquent How to get property of model if

2019-03-27 20:36发布

I have the following in my root route:

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

Which returns the exception Use of undefined constant one - assumed 'one' even though I do have a column called column-one from my users table. So how do I get column-one from my model?

2条回答
不美不萌又怎样
2楼-- · 2019-03-27 21:15

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.

查看更多
Root(大扎)
3楼-- · 2019-03-27 21:29

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"}

查看更多
登录 后发表回答