小编Jon*_*han的帖子

将计算字段添加到Laravel模型查询

我有一个控制器,它有一个像这样的查询:

$post = Post::find($id);
$comments = $post->comments;
Run Code Online (Sandbox Code Playgroud)

帖子有很多评论,评论属于一个帖子.评论模型有id,comment,tag字段.

我想要做的是,对于任何查询,例如这个,模型返回字段id,comment,tag和tag_translated,其中后者只是使用Lang facade的标签转换.

我可以通过在控制器上使用for来解决这个问题,该控制器遍历$ comments并添加字段,但是我必须为需要tag_translared字段的每个控制器执行此操作.有没有办法要求模型包含这样的字段?

php laravel eloquent

5
推荐指数
3
解决办法
1万
查看次数

捕获 Numpy All-Nan 切片

我在尝试捕获 Python 异常时遇到问题:

文件“/usr/lib/python2.7/dist-packages/numpy/lib/nanfunctions.py”,第427行,在nanargmax raise ValueError("All-NaN slice遇到") ValueError: All-NaN slice遇到

当切片有效包含 All-NaN 时,此代码会出现错误。但是,我想抓住这种情况并处理它。

with warnings.catch_warnings():
   warnings.filterwarnings('error')
try:
    action = np.nanargmax(self.Q[state])
except Warning as e:
    print "error"
    sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

我希望打印单词 error,但是,try-except 语句被忽略。请问有什么帮助吗?

python numpy nan

4
推荐指数
1
解决办法
6997
查看次数

Eloquent 中忽略了 whereHas 中的 where 子句

我尝试使用whereHas和 eloquent进行查询。查询是这样的:

$projects = Project::whereHas('investments', function($q) {
                $q->where('status','=','paid');
            })
            ->with('investments')
            ->get();
Run Code Online (Sandbox Code Playgroud)

我使用 Laravel 5.2 并使用 Postgres 驱动程序。

项目模型为:

public function investments()
{
    return $this->hasMany('App\Investment');
}
Run Code Online (Sandbox Code Playgroud)

投资模式有:

public function project() {
    return $this->belongsTo('App\Project');
}
Run Code Online (Sandbox Code Playgroud)

项目表有字段 id、字段...

投资表包含字段 id、project_id、status、created_at

我的问题是,查询运行并返回至少有一项投资的项目集合,但是whereHas内的where子句被忽略,因为生成的集合包含状态值不同于paid 的投资。

有人知道发生了什么事吗?

laravel eloquent

1
推荐指数
1
解决办法
4487
查看次数

标签 统计

eloquent ×2

laravel ×2

nan ×1

numpy ×1

php ×1

python ×1