两个模型的通用model_id-Laravel 5-雄辩

时间:2019-01-07 20:52:24

标签: php laravel laravel-5 eloquent

我有一个问题,我正在寻找答案一段时间。 好吧,在我的Laravel项目中,我有一个模型mMessages,该模型与DiseaseRecipe模型之间具有belongsMany关系。 我希望从数据库中获取与当前登录用户具有相同 disease_id 的所有食谱行。 有没有办法用口才呢? 谢谢!

2 个答案:

答案 0 :(得分:0)

会进行以下工作吗?

    JavaDStream<RequestEvent> requestEventStream = inputDStream.map(kafkaRecord -> {
        numInputMessages.add(1);
        return kafkaRecord.value();

    });


    JavaPairDStream<String, Long> ipStream = requestEventStream.filter(event -> event.getIPAddress()!=null )
            .mapToPair(event -> new Tuple2<String, Long>(event.getIPAddress(), 1L));

    JavaPairDStream<String, Long> ipCountDStream = ipStream.reduceByKeyAndWindow(((v1, v2) -> {
        return v1 + v2;
    }), ((v1, v2) -> {
        return v1 - v2;
    }), WINDOW_DURATION, SLIDE_DURATION);
    ipCountDStream.cache();


    JavaPairDStream<String, Long> ipRisky = ipCountDStream.filter(f -> f._2.intValue() > 5);
    JavaPairDStream<String, Long> ipRiskyToPersist = ipRisky
            .mapToPair(t -> new Tuple2<String, Long>(t._1, 1L));

    ipRiskyToPersist.foreachRDD(f -> {
        Map<String, Long> mappedIPs = new HashMap<>();
        f.foreach(t -> mappedIPs.put(t._1, t._2));


        LOGGER.info(" RequestEvent: Total risky ips: " + f.count());
        LOGGER.info("Processed " + numInputMessages.localValue() + " unique IPs");

    });

答案 1 :(得分:0)

确保您的User模型具有定义的diseases关系:

public function diseases()
{
    return $this->hasMany(Disease::class);
}

您可以像这样获得当前用户和disease_id(经过编辑以使用“用户”模型上的疾病关系):

$user = Auth::user();
$disease_ids = $user->diseases()->pluck('id');

然后您可以找到具有相同disease_id的食谱,如下所示:

return Recipe::whereIn('disease_id', $disease_ids)->get();