根据this question中有关如何使用当前项目的依赖项加载iex的建议,我能够以非常高效的方式使用phoenix框架依赖项。但是,为每一件事提供Phoenix项目的命名空间都会有点乏味。
而不是键入$sql= "SELECT p.productid, GROUP_CONCAT(p.prodsize ORDER BY p.id ASC) as size, GROUP_CONCAT(p.cost ORDER BY p.id ASC)
as cost, GROUP_CONCAT(c.prodsize,'-',c.quantity) as cart_details FROM productsize p
LEFT JOIN cart c ON(c.productid = p.productid AND p.prodsize = c.prodsize)
GROUP BY p.productid ORDER BY p.productid ASC";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$i = 0;
while($row = mysql_fetch_assoc($result))
{
$purchasedData = array();
$purchasedsize = $purchasedquantity = $final_size = $final_cost = array_fill(0, 4, '0');
$size = explode(',', $row['size']);
$cost = explode(',', $row['cost']);
$cart_details = explode(',', $row['cart_details']);
foreach($cart_details as $cart) {
if($cart != '') {
$details = explode('-', $cart);
$key = array_search($details[0], $size);
$purchasedData[$details[0]] = $details[1];
}
}
foreach($size as $k => $sizecol) {
switch($sizecol) {
case 'small':
$array_key = '0';
break;
case 'medium':
$array_key = '1';
break;
case 'large':
$array_key = '2';
break;
case 'perpiece':
$array_key = '3';
break;
}
$final_size[$array_key] = $sizecol;
$final_cost[$array_key] = $cost[$k];
if ($purchasedData[$sizecol]) {
$purchasedsize[$array_key] = $sizecol;
$purchasedquantity[$array_key] = $purchasedData[$sizecol];
}
}
$rows[$i]['productid'] = $row['productid'];
$rows[$i]['size'] = $final_size;
$rows[$i]['cost'] = $final_cost;
$rows[$i]['purchasedsize'] = $purchasedsize;
$rows[$i]['purchasedquantity'] = $purchasedquantity;
$rows[$i]['userid'] = $row['user_id'];
$i++;
}
}
echo "<pre>";
print_r($rows);
echo "</pre>";
我希望能够MyApp.Repo.all(MyApp.User)
。我可以使用Repo.all(User)
单独为每个事物添加别名,但有没有办法一次性完成所有事情?
答案 0 :(得分:12)
您只需拨打alias MyApp.Repo
而不是MyApp.Repo, as: Repo
- 它将使用模块名称的最后一部分。
在Elixir 1.2中,您可以通过一次调用将多个子模块别名为自己的名称:alias MyApp.{Repo, User}
您还可以选择.iex.exs
文件,您可以使用它来设置别名。你可以在http://elixir-lang.org/docs/v1.1/iex/IEx.html阅读它 - 在这种情况下我不推荐它,因为你冒着命名冲突的风险。在iex会话中调用alias
更明确。