Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
10月cms(laravel)何处查询_Laravel_Octobercms - Fatal编程技术网

10月cms(laravel)何处查询

10月cms(laravel)何处查询,laravel,octobercms,Laravel,Octobercms,我对筛选查询有一些问题。我需要做一些像这样的事情 从艺术家的绘画中选择绘画,其中类型=$\u GET['type']和材质=$\u GET['material']和艺术家的slug=$\u GET['artist\u slug']按绘画描述排序 我有一位画师兼艺术家“艺术家”在“艺术家”表中 我知道 但我不知道下一步该怎么办。 如何在php代码中进行查询?我将从艺术家的角度解决这个问题: $artist = Artists::where('artist_slug', $this->para

我对筛选查询有一些问题。我需要做一些像这样的事情

从艺术家的绘画中选择绘画,其中类型=$\u GET['type']和材质=$\u GET['material']和艺术家的slug=$\u GET['artist\u slug']按绘画描述排序

我有一位画师兼艺术家“艺术家”在“艺术家”表中

我知道

但我不知道下一步该怎么办。
如何在php代码中进行查询?

我将从艺术家的角度解决这个问题:

$artist = Artists::where('artist_slug', $this->param('slug'))->with('paintings')->first();
通过使用
$artist->paints
可以访问艺术家的所有绘画作品,这将是一个
收藏

短而脏:

Painting::where('type',input("type"))
->where('material',input("material"))
->whereHas('artist', function($q)
    {
         $q->where('artist_slug', '=', $this->param('slug'));
    })->get();
解释如下:

初始化查询时,将返回查询生成器实例。基本上,查询生成器上的所有方法都返回相同的实例,因此您可以将它们菊花链连接到一个查询中。
但您也可以只使用查询生成器

$query = Painting::where('type',input("type"));
或:

然后,您可以只处理查询生成器实例,将其传递给可能需要执行操作的其他方法

function getPaintings($type, $material, $slug) 
{
     $query = Painting::where('type',$type);    
     $query->where('material', $material);
     $this->findArtistBySlug($query, $slug);
     return $query->get()
}

function findArtistBySlug($query, $slug) 
{
    $query->whereHas('artist', function($q) use ($slug)
    {
         $q->where('artist_slug', '=', $slug);
    });
    $query->with(['artist']);
}
你可能想读书

您是否定义了模型之间的关系?
$query = $model->newQuery()// Where model is an intance of painting, for example new Painting();
function getPaintings($type, $material, $slug) 
{
     $query = Painting::where('type',$type);    
     $query->where('material', $material);
     $this->findArtistBySlug($query, $slug);
     return $query->get()
}

function findArtistBySlug($query, $slug) 
{
    $query->whereHas('artist', function($q) use ($slug)
    {
         $q->where('artist_slug', '=', $slug);
    });
    $query->with(['artist']);
}