使用eloquent根据结果查找结果

时间:2016-05-15 10:36:28

标签: mysql laravel eloquent

我有下表。

地点

id | postcode | suburb | state

另一张桌子:

公告

id | name | location - Matches to 'id' in the first table

首先,我有一个代码,用于执行第一表中的位置结果并将其保存到变量中。接下来,我需要找到哪些分类与变量中的结果匹配。这是我到目前为止所做的,并不确定如何做到这一点。

此代码在视图上运行:

$locations = Location::where('location', '=', $_GET['location']); (From the URL)

此代码需要在'分类广告中找到结果。与已分类的地理位置ID匹配的表格,其中$位置变量中的 ANY ID

    foreach($locations as $loc)
        {
            foreach($classifieds as $classi)
            {
                if($loc->id == $classi->location)
                {

                }
            }
        }

像这样的^,除了这段代码不起作用

用一个例子进一步解释:

地点数组变量包含:

98212 | 4220 | BURLEIGH HEADS | QLD(身份证,邮政编码,郊区,州)

98213 | 4221 | BURLEIGH WATERS | QLD(身份证,邮政编码,郊区,州)

这是(Classified :: where(' location,' =',$ _GET [' location') - > get( ))

分类表有:

1 | Red Bike | 98212 (id, name, location)

2 | Red Bike | 98213 (id, name, location)

3 | Red Bike | 98213 (id, name, location)

查找位置列在变量

中的分类广告

1 个答案:

答案 0 :(得分:1)

使用Collection方法pluck()方法lists()$locationIds = $locations->pluck(id); 将所有位置ID提取到一个数组中(取决于版本):

whereIn()

并使用Eloquents $classfields = Classified::whereIn('location', $locationIds)->get(); 方法:

$classfields = Classified::whereIn('location', $locations->pluck(id))->get();

所有这些都可以是一个单行:

#include <stdio.h>
#include <string.h>

int main(void) {
    char recbuf[7] = {'a', 'b', 'c', '\0', 'd', 'e', '\0'};
    int recbuf_size = 7;
    int j = 0;
    char* p = recbuf;
    while(j < recbuf_size) 
    {
        printf("%s\n", p);  // print the string found
                            // Here you could copy the string if needed, e.g.
                            // strcpy(mySavedStrings[stringCount++], p);

        int t = strlen(p);  // get the length of the string just printed
        p += t + 1;         // move to next string - add 1 to include string termination
        j += t + 1;         // remember how far we are
    }
    return 0;
}