我有一个关系N x 1,Traceback (most recent call last):
File "C:\Users\Franck\Documents\rouge.py", line 8, in <module>
r = Rouge155()
File "C:\Anaconda\envs\py35\lib\site-packages\pyrouge\Rouge155.py", line 88, in __init__
self.__set_rouge_dir(rouge_dir)
File "C:\Anaconda\envs\py35\lib\site-packages\pyrouge\Rouge155.py", line 402, in __set_rouge_dir
self._home_dir = self.__get_rouge_home_dir_from_settings()
File "C:\Anaconda\envs\py35\lib\site-packages\pyrouge\Rouge155.py", line 416, in __get_rouge_home_dir_from_settings
with open(self._settings_file) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Franck\\AppData\\Roaming\\pyrouge\\settings.ini'
,Post-&gt; User有如下关系:
Post.php(模特):
Post x User
我想在提取每个帖子时仅从用户模型中选择....
public function user() {
return $this->belongsTo('User');
}
....
和id
,但我还想要帖子中的username
和id
(不是Post模型中的每一列)。
title
我可以从return Post::with(array('user'=>function($query){
$query->select('id','username');
}))->get();
获取id
和username
,但我也从User
模型中提取所有列,而不是我想要的,所以o尝试:
Post
虽然没有成功,但return Post::with(array('user'=>function($query){
$query->select('id','username');
}))->select(['id', 'title'])->get();
变为空,我留下来自邮政的User
和id
。
我正在回复json回复,如果相关的话。
注意:我不想在我的Post.php模型文件上进行任何“硬编码”,因为我可能想要针对不同情况使用不同列的相同关系,所以我想保留关系是title
答案 0 :(得分:2)
Post::select('id', 'title', 'user_id')
->with(array('user'=>function($query){
$query->select('id','username');
}))->get();
您需要使用外键来维护两个模型之间的关系。
答案 1 :(得分:2)
通常我是这样做的。
Post::select('id','title','user_id')->with('user:id,username')->get();
为此,您需要正确定义关系,并且必须从post表中选择外键。