php - Laravel eloquent - 使用带有关系的可选值键参数进行查询

标签 php mysql laravel eloquent

我需要使用可选参数数组进行查询,可能如下所示:

array:3 [
  "parent" => "prosjektsamarbeidets"
  "category" => "article"
  "slug" => "prosjektsamarbeidets-verdi"
]

它总是有一个 slug 参数,但数组中的其他参数是可选的。 有了这个参数,我需要在模型 Content 中进行查询,其中 category 的关系在本例中指的是模型 Taxonomy设置如下:

public function taxonomies()
{
    return $this->morphToMany('App\ContentTaxonomy', 'taggable');
}

并且 parent 键值(如果存在)是内容表中记录的名称,其中包含以下列:

id | cms_id | title | slug | excerpt | body | parent_id  

通过slug获取content后,如何进行这样的查询?

$post = Content::where('slug',$arguments['slug'])->get();

if (array_key_exists('parent', $arguments)) {
      //do further query by parent name
}

if (array_key_exists('category', $arguments)) {
      //do further query by category
}

最佳答案

你应该尝试:

public function taxonomies()
{
    return $this->morphToMany('App\ContentTaxonomy', 'taggable')->withPivot('additional_attribute', 'additional_attribute');;
}

然后,您可以通过以下方式访问这些变量:

foreach ($shop->taxonomies as $taxonomy)
{
    echo $taxonomy->pivot->additional_attribute;
}

或者你的意思是:

$post = Content::taxonomies()->where('slug',$arguments['slug'])->get();

请告诉我您的意思是不是这个意思?

关于php - Laravel eloquent - 使用带有关系的可选值键参数进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44860234/

相关文章:

php - Laravel 4 验证电子邮件唯一约束

PHP手机浏览器检测?

php - SQL查询MySQL到JSON

php+mysqli while(false !== ($data = $mysqli_res->fetch_assoc)) 创建无限循环

javascript - Vuejs 在计算属性中使用 foreach。 Blade 模板

php - 权限 "public"文件夹 Laravel

php - Phalcon 迁移系统中的 auto_increment

php - php yii中的语法错误,连接字符串

c# - 当我进入打印预览时,如何删除表单的按钮

Visual Basic 6.0 的 MySQL 示例 - 读/写