2017-10-26 9 views
0

このコードは、データベース内の7つの項目のステータス= DRAFTとtoSearchableArray()が同じ1行をAlgoliaに7回送りますか?

1ポストをPUBLISHED状態と

6レコードが=があるDBから1ポストを取得しますがAlgoliaにそれを7回を送り...

public function toSearchableArray() 
{ 
    $array = Post::where('status', '=', static::PUBLISHED)->toArray(); 
     return $array; 
} 

何が間違っていますか?

+0

このコードは、5個の配列を生成しますが、今すぐ正しいデータがありますか? $ pst = Post :: select( 'id'、 'title'、 'excerpt'、 'body') - >ここで( 'status'、 '='、static :: PUBLISHED) - > get(); return $ pst-> toArray(); うーん、誰でも私の問題に遭遇することができます:-) –

答えて

0

私は大きな質問に答えました。列挙型フィールドはAlgoliaが簡単これが答えです:-)

それを把握することができるように、偽の何か、trueになって "PUBLISHED":

$プロパティ=の$ this - >のtoArray();
$プロパティ['visible'] = $ this-> status === 'PUBLISHED';

return $ properties;

:-)とおやすみ

0

toSearchableArrayは、エントリごとに呼び出されます。ステータスをDRAFTに設定してモデルのインデックスを作成したくない場合は、空の配列を返すことができます。

public function toSearchableArray() 
{ 
    if ($this->status === 'DRAFT') { 
     return []; 
    } 

    return $this->toArray(); 
} 
関連する問題