【发布时间】:2014-10-15 17:33:39
【问题描述】:
我有三个模型:
用户:
public function projects()
{
return $this->hasMany('StoredFile', 'user_id', 'id')->with('files');
}
存储文件:
public function files()
{
return $this->hasMany('File', 'hash', 'user_hash');
}
和没有关系方法的文件模型
问题:
我使用下面这段代码来获取项目和每个项目存储的文件:
$projects = $user->projects;
var_dump(json_encode($projects))
// {"project_name":"test","user_hash":"64650458b6Fhgd68ca57308222","files":[{"id":1,"name":"example.pdf"}]}
我可以使用 count($projects[0]->files) 来获取文件数
但是这个 $projects 变量需要通过 Response::json 返回到客户端
return Response::json($project);
而且我不能将文件泄露给访问者,我想修改 StoredFile 模型以仅返回文件数
就像:
return $this->hasMany('File', 'hash', 'user_hash')->count();
但这会给我一个错误:
在非对象上调用成员函数 addEagerConstraints()"
如何在关系中接收计数值??
请帮忙!谢谢
【问题讨论】:
标签: php database laravel orm relational-database