我有一个模型类,我在其中定义了列的名称。
class Permission extends Model
{
public static $colName = 'mycolname';
//...
}
在控制器中:
//...
// Trying to get the value of column 'mycolname'
// I wanna do it this way, but I'm getting a syntax error:
$data = $user->permission->Permission::$colName;
// This way works, but I don't want to hardcode the column name here
$data = $user->permission->mycolname;
如果它很重要,我使用的是Laravel 5.3 / Eloquent。
这有可能吗?
谢谢!
答案 0 :(得分:0)
你可以这样做:Permission::colName
也许这也是,但我没有测试它
$data = $user->permission::colName
答案 1 :(得分:0)
首先使用变量名称,像这样使用
$mycolname = Permission::colName;
并像这样获取变量。
$data = $user->permission->$mycolname;
答案 2 :(得分:0)
导入权限模型
$columnname = Permission::$colName; // Add this line to get column name
$data = $user->permission->$columnname; // get column value
答案 3 :(得分:0)
虽然其他人已经发布了一个解决方案(我已经接受了),但我最终在模型中创建了一个为我做逻辑的方法:
class Permission extends Model
{
public static $colName = 'mycolname';
//...
public static function canCreateStuff($id) {
$perm = Permission::where('user_id', $id)->where(Permission::$colName, 1)->first();
if ($perm != null) {
return true;
}
return false;
}
}
在控制器中:
//...
// Trying to get the value of column 'mycolname'
// I wanna do it this way, but I'm getting a syntax error:
$data = Permission::canCreateStuff($id);