Laravel replicate()函数不适用于模型集合

时间:2016-01-05 10:10:23

标签: php collections model laravel-5.1

我在laravel面临一个问题。

我想在应用过滤集合后复制/克隆集合。

代码如下:

/* Scope function */         
    $plansFilterIndexes=Plans::PlansFilterFields();
     $planFilters=Plans::FilterFieldsSerial($query);
     /* Create Plans collection */

     $PlansAll=Plans::all();

    /* Plans Filter by url 
     * here checking $planFilter  indexes IS AVALIABLE AT 
     *  DEFINED  INDEX $plansFilterIndexes
     */
    $query = null;
        foreach($planFilters as $eachIndexKey => $eachIndexValue):
        echo $eachIndexKey.'------'.$eachIndexValue.'<br/>';
        if(array_search($eachIndexKey, $plansFilterIndexes) != false):

            $PlansAll = $PlansAll->where($eachIndexKey, $eachIndexValue);
        endif;
    endforeach;
    //dd($PlansAll);
    /* Clone collection into new once for copy */

    $PlansAllClone =$PlansAll->replicate();
    dd($PlansAllClone);

尝试使用Clone an Eloquent object including all relationships?解决方案但未获得结果

显示错误: Method replicate does not exist.

它不起作用。

问题:

为什么$ PlansAllClone = $ PlansAll-&gt; replicate();未能给出结果。 如果它不可能,请表明我将实现它。

1 个答案:

答案 0 :(得分:0)

Replicate是一种将模型克隆到新的非现有实例中的方法,而不是用于克隆Collection。

replicate的用法如下:

$newPlansInstance = Plans::replicate();

除了可选参数外,它可以是异常数组。

你到底想要完成什么?