我在Phoenix应用程序中的一个控制器中执行了以下操作:
plug :scrub_params, "account"
plug :scrub_params, "studio"
def create(conn, %{"account" => account_params, "studio" => studio_params}) do
end
当某人没有发送正确的params时,app会返回Phoenix.MissingParamError
错误。我怎样才能解救它并在json中向用户返回好消息?
答案 0 :(得分:2)
你可以创建另一个函数头来处理这种情况。像这样的东西,也许
def create(conn, %{"account" => account_params, "studio" => studio_params}) do
# handle request
end
def create(conn, params) do
# handle missing param
end
答案 1 :(得分:1)
也许您可以使用Plug.ErrorHandler。像这样的东西。
function languages_top_bar(){
$languages = icl_get_languages('skip_missing=0&orderby=code');
if(!empty($languages)) : ?>
<div id="top_bar_language_list" class="topbar-language-switcher">
<ul>
<li class="menu-item-first"><a href="#"><?php echo ICL_LANGUAGE_NAME; ?></a>
<ul class="sub-menu">
<?php
foreach($languages as $l) {
echo '<li class="sub-menu-item">';
if($l['country_flag_url']){
if(!$l['active']) echo '<a class="flag" href="'.$l['url'].'">';
echo '<img src="'.$l['country_flag_url'].'" height="12" alt="'.$l['language_code'].'" width="18" />';
if(!$l['active']) echo '</a>';
}
if(!$l['active']) echo '<a href="'.$l['url'].'">';
echo icl_disp_language($l['native_name'], $l['translated_name']);
if(!$l['active']) echo '</a>';
echo '</li>';
}
echo '</ul></li>';
?>
<?php endif; ?>
<?php echo '</ul></div>';
}