「id」と「step」という名前のステップのテキストを含む「steps」テーブルがあります。次に、「id」とその他の顧客情報を含む「顧客」テーブルがあります。最後に、「customer_id」と「step_id」を持つ「customers_steps」結合テーブルがあります。目標は、ステップのリストを作成し、どのステップが完了したかを示すことです。しかし、私は立ち往生しています...
何も見逃していないことを確認するために、「顧客」モデルでは、
var $has_many = array ('step');
「ステップ」モデルでは、
var $has_many = array('customer');
今、私は手順をループしてから、顧客の手順をループしてそれらが一致するかどうかを確認しています...しかし、それは大量のコードであり、より高速な方法が必要であることを知っています。
$c = new Customer();
$c->get_by_id(1);
$c->step->get();
$s = new Step();
$s->get();
foreach($s as $step)
{
foreach($c as $customer)
{
if($customer->step->id == $step->id)
{
$match = true;
}
}
if($match)
{
echo "match - " . $step->step;
}
else
{
echo $step->step;
}
}
これは機能します...しかし、それを改善するにはどうすればよいですか? 前もって感謝します。