Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 4 返回Laravel中模型的特定列并转换为Json_Laravel 4_Eloquent - Fatal编程技术网

Laravel 4 返回Laravel中模型的特定列并转换为Json

Laravel 4 返回Laravel中模型的特定列并转换为Json,laravel-4,eloquent,Laravel 4,Eloquent,有两个表是多对多关系: 用户: 我可以让用户使用所有字段并将其转换为json: $role = Role::find($id)->users()->get()->toArray(); var_dump($role); 但是当我试图只检索用户id字段时,在将其转换为json时遇到了一个问题,下面是我的代码:(如果我不调用->get()->toArray(),var_转储就没有问题。) 有什么想法吗?谢谢 编辑: 错误消息: Slim Applic

有两个表是多对多关系:

用户:

我可以让用户使用所有字段并将其转换为json:

    $role = Role::find($id)->users()->get()->toArray();        
    var_dump($role);
但是当我试图只检索用户id字段时,在将其转换为json时遇到了一个问题,下面是我的代码:(如果我不调用->get()->toArray(),var_转储就没有问题。)

有什么想法吗?谢谢

编辑:

错误消息:

Slim Application Errorbody{margin:0;padding:30px;font:12px/1.5 Helvetica、Arial、Verdana、sans serif;}h1{margin:0;字体大小:48px;字体重量:正常;行高:48px;}strong{display:内联块;宽度:65px;}Slim Application Error由于以下错误,应用程序无法运行:

详细信息类型:Lightlight\Database\QueryException代码:23000消息:SQLSTATE[23000]:完整性约束冲突:字段列表中的1052列“id”不明确(SQL:选择
id
users
*,
role\u-user
role\u-id
作为
pivot\u-id
role\u-user
作为
pivot\u-user\u-id
来自
用户的
内部连接
role\u-user
用户上
role\u user
role\u id
=role\u 1)文件:/Users/Public/Website/cast/vendor/illusted/database/Connection.php行:555Trace

编辑2:

错误是由select语句中的字段引起的。我将其更改为:

$role = Role::find($id)->users()->select(array('users.id'))->get()->toArray(); 
var_dump($role);

现在,它返回一些值。但不幸的是,它仍然返回所有字段,而不是仅返回“users.id”字段。

根据Taylor Otwell的说法,目前无法选择要返回的列并使用belongTomany:

这个解决方案怎么样:

角色

然后

$roles = Role::find($id)->with('users')->get();
$users = $roles->users;
$usersId = $users->lists('id');

根据Taylor Otwell的说法,目前不可能选择返回以下列:

这个解决方案怎么样:

角色

然后

$roles = Role::find($id)->with('users')->get();
$users = $roles->users;
$usersId = $users->lists('id');

根据Taylor Otwell的说法,目前不可能选择返回以下列:

这个解决方案怎么样:

角色

然后

$roles = Role::find($id)->with('users')->get();
$users = $roles->users;
$usersId = $users->lists('id');

根据Taylor Otwell的说法,目前不可能选择返回以下列:

这个解决方案怎么样:

角色

然后

$roles = Role::find($id)->with('users')->get();
$users = $roles->users;
$usersId = $users->lists('id');

以下是基于Antoine Augusti答案的最终工作版本:

Role.php:

<?php

class Role extends Model {

    public function users()
    {
        //return $this->belongsToMany('User');
        return $this->belongsToMany('User')->select('users.id');
    }    
}
usersId将只显示数组中的用户id。但是我认为$users仍然包含所有字段


无论如何,它解决了我的问题,尽管它并不完美。谢谢Antoine Augusti。

以下是基于Antoine Augusti的答案的最终工作版本:

Role.php:

<?php

class Role extends Model {

    public function users()
    {
        //return $this->belongsToMany('User');
        return $this->belongsToMany('User')->select('users.id');
    }    
}
usersId将只显示数组中的用户id。但是我认为$users仍然包含所有字段


无论如何,它解决了我的问题,尽管它并不完美。谢谢Antoine Augusti。

以下是基于Antoine Augusti的答案的最终工作版本:

Role.php:

<?php

class Role extends Model {

    public function users()
    {
        //return $this->belongsToMany('User');
        return $this->belongsToMany('User')->select('users.id');
    }    
}
usersId将只显示数组中的用户id。但是我认为$users仍然包含所有字段


无论如何,它解决了我的问题,尽管它并不完美。谢谢Antoine Augusti。

以下是基于Antoine Augusti的答案的最终工作版本:

Role.php:

<?php

class Role extends Model {

    public function users()
    {
        //return $this->belongsToMany('User');
        return $this->belongsToMany('User')->select('users.id');
    }    
}
usersId将只显示数组中的用户id。但是我认为$users仍然包含所有字段



不管怎样,它解决了我的问题,尽管它并不完美。谢谢Antoine Augusti。

什么是“模型”?角色不应该扩展雄辩吗?对不起。这是一个雄辩的模型。(我使用的SlimStarter扩展了雄辩。)“问题”/“错误”是什么当你尝试运行命令时,你会得到什么?我想我应该在我的情况下使用“users.id”。在我修复了文件名问题后,我可以得到结果。但不幸的是,它仍然返回所有字段,而不是我选择的字段。什么是“Model”?角色不应该扩展Eloquent吗?抱歉。这是一个Eloquent模型。(我正在使用SlimStarter扩展Eloquent)。当您尝试运行该命令时,您会遇到什么“问题”/“错误”?我认为我应该使用“users.id”。在我解决了文件名问题后,我可以得到结果。但不幸的是,它仍然返回所有字段,而不是我选择的字段。什么是“模型”?角色不应该扩展雄辩吗?抱歉,这是一个雄辩的模型。(我正在使用SlimStarter,它扩展了雄辩)。当你尝试运行命令时,你会遇到什么“问题”/“错误”呢?我想我应该使用“users.id”。在我修复了文件名问题后,我可以得到结果。但不幸的是,它仍然返回所有字段,而不是我选择的字段。什么是“Model”?角色不应该扩展雄辩?抱歉。这是一个雄辩的模型。(我正在使用SlimStarter扩展雄辩)。什么是“问题”/“错误”当您尝试运行该命令时,您得到了什么?我想我应该在本例中使用“users.id”。在我解决了文件名问题后,我可以得到结果。但不幸的是,它仍然返回所有字段,而不是我选择的字段。感谢您的回复。首先,我应该在select('id')中将“id”更改为“users.id”。但是$users=$roles->users();不返回任何内容。
$users=$roles->users;
如果您键入了感谢您的回复。首先,我应该在select('id')中将“id”更改为“users.id”。但是$users=$roles->users();不返回任何内容。
$users=$roles->users;
如果您键入了感谢您的回复。首先,我应该在select('id')中将“id”更改为“users.id”。但是$users=$roles->users();不返回任何内容。如果您键入,则为
$users=$roles->users;
。感谢您的回复。首先,我应该在select('id')中将“id”更改为“users.id”。但是$users=$roles->users();不返回任何内容。如果您键入,则为
$users=$roles->users;