我以为它们存放在饼干中 - 但不,饼干检查没有给我任何东西.会话也不存储它们.那么,我能在哪里找到它们?
我需要这个来直接设置它们(而不是通过flash
哈希).
我正在从Symfony 2.0迁移到Symfony 2.1.
我的控制器上有以下简单代码:
public function createEntidadeAction() {
$this->get('session')->getFlashBag()->set('error', 'message');
return $this->redirect($this->generateUrl('EntidadeBundle_index'));
}
Run Code Online (Sandbox Code Playgroud)
如果我生成错误(例如通过传递错误的路由),我会检查探查器是否存在flash消息.
但是,如果我让重定向成功,则flash消息将消失,并且不显示任何内容.我在相应的Twig模板上有以下内容:
{% for flashMessage in app.session.flashbag.get('error') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这一点.我错过了什么?Flash消息应该在第一次重定向后持续,不是吗?
我有一个表单,提交按钮检查是真还是假.
如果它真的重定向到另一个页面.
如果它是错误的停留在同一页面上并打印错误消息.
使用flash messenger打印出错误消息.但是,在某些情况下,当提交为false时,它不会在第一次尝试时打印,它总是在第二次单击时打印出来.
我做错了什么吗?而且,有没有办法设置差异闪光信使名称?因为,在我的其他具有flash messenger的页面上,在刷新页面时打印出错误.
这是代码:
if(isset($_POST['submit'])) {
// code to inputfields
if(true) {
//redirect to some page
} else {
// print the flash error on the same page
$this->_helper->flashMessenger->addMessage(" This email is already taken");
$this->view->messages = $this->_helper->flashMessenger->getMessages();
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<center>
<div style="color:red">
<?php if (count($this->messages)) : ?>
<?php foreach ($this->messages as $message) : ?>
<div id="field_name">
<strong style="text-transform:capitalize;">Email </strong>
- <?php echo $this->escape($message); ?>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</center>
Run Code Online (Sandbox Code Playgroud) 这是我要实现的目标:当用户尝试访问我的ReactJS网站上的受保护页面时,我想通过一条简短的消息“请登录”或类似内容将其重定向到首页。我如何使用react-router v4实现此目的。这是我到目前为止的内容:
<Router>
<div>
<Switch>
<Route path="/" component={Home} />
<Route
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Home /> //I want to Redirect to the Home Page with a flash message if user is not logged in
)
)}
/>
<Route path="/contact" component={ContactUs} />
</Switch>
</div>
</Router>,
);
Run Code Online (Sandbox Code Playgroud) 我已经设置了一个flash助手:
def flash_message
flash.each do |key, msg|
content_tag :div, msg, :id => key, :class => 'flash'
end
end
Run Code Online (Sandbox Code Playgroud)
我把它放在我的application.html.erb中:
<%= flash_message %>
Run Code Online (Sandbox Code Playgroud)
它返回的内容如下:
{:notice=>"Testing"}
Run Code Online (Sandbox Code Playgroud)
我对rails很新,所以这可能是一个业余的错误.
当使用Twitter-Bootstrap的样式不正确地提交表单时,我试图简单地呈现flash消息.
我显然遗漏了一些东西,因为我一直收到以下错误:
TypeError in NewslettersController#create
can't convert Symbol into String
Run Code Online (Sandbox Code Playgroud)
代码如下
视图
<div class="footer_newsletter_container">
<%= image_tag("envelope.png", :border=>0, :class => '') %> Sign up for our newsletter</br></br>
<%= simple_form_for Newsletter.new do |f| %>
<%= f.input :email, :label => false, :placeholder => 'Enter Your Email Address', class: "floatleft" %><%= f.button :submit, 'Submit', class: "btn floatleft" %>
<% end %>
<%= render "layouts/messages" %>
</div>
Run Code Online (Sandbox Code Playgroud)
局部
<% flash.each do |name, msg| %>
<div class="alert alert-<%= name == :notice ? "success" : "error" %>">
<a …
Run Code Online (Sandbox Code Playgroud) controller flash-message twitter-bootstrap ruby-on-rails-3.2
在我的控制器中,我有一个登录用户的功能.
如果登录成功,我可以简单地使用return Redirect::back()
.
当凭据不正确并且我想使用flash消息重定向时,我的问题就开始了.
我知道我可以将with
方法链接到Redirect,但是这会将数据发送到特定视图,而不是登录HTML所在的布局.
我可以像这样加载一个视图:
$this->layout
->with('flash',$message)
->content = View::make('index');
Run Code Online (Sandbox Code Playgroud)
但我需要重定向回引用页面.
在将数据传递到布局时是否可以重定向?
通常在Laravel 4.2中我们创建flash消息时
Session::flash('message','This is flash message');
Run Code Online (Sandbox Code Playgroud)
并显示它
Session::get('message');
Run Code Online (Sandbox Code Playgroud)
当我们刷新页面时它会消失.
问题是我们如何设置此Flash消息的显示时间?
(例如:3秒后,此消息将消失!).
我在 Symfony 4 和翻译中遇到闪现消息问题。简单的闪存消息的翻译工作正常:
$this->addFlash('success', 'flashmessage.project_deleted');
Run Code Online (Sandbox Code Playgroud)
但现在我想在闪现消息中添加一些参数,但我不知道如何处理。我尝试了很多,但没有任何效果。我想在删除 fe 后在闪现消息中显示项目的标题。例如:
$this->addFlash('success', sprintf('flashmessage.project_deleted: %s', $project->getTitle()));
Run Code Online (Sandbox Code Playgroud)
但翻译无法识别,因为参数在翻译发生之前被替换(我认为是这样)。并且还应该可以在字符串的中间包含参数,而不仅仅是在末尾或开头,并且最好有多个参数。
我在扩展 AbstractController 的控制器中使用它。
有人有解决方案吗?
拒绝访问控制器后如何在 Yii2 中设置闪现消息?以下是拒绝访问http://www.yiiframework.com/doc-2.0/yii-filters-accesscontrol.html的方法:
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['create', 'update'],
'rules' => [
// deny all POST requests
[
'allow' => false,
'verbs' => ['POST']
],
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
Run Code Online (Sandbox Code Playgroud)
之后它会重定向到站点/登录。我怎样才能在那里制作闪存消息,例如“此部分仅适用于注册用户”?
flash-message ×10
php ×4
laravel ×2
redirect ×2
symfony ×2
controller ×1
flash ×1
laravel-4 ×1
react-router ×1
reactjs ×1
ruby ×1
symfony-2.1 ×1
symfony4 ×1
translation ×1
yii2 ×1