使用CakePHP 2.1我有以下代码
public function getForm($id=null){
$this->loadModel('DynamicFormResponse');
/**
* Check if form exists
*/
$this->form_schema= $this->DynamicForm->isValidForm($id);
if($this->form_schema == false){
$this->flash("Invalid form", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
}
...
...
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,调用$this->flash()渲染flash页面,但也继续执行控制器.
所以,除非我做类似的事情
if($this->form_schema == false){
$this->flash("Invalid form", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
return;
}
Run Code Online (Sandbox Code Playgroud)
控制器不会终止.
_crsf_error调用方法时会出现主要问题
function _csrf_error() {
$this->flash("csrf Error", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
}
Run Code Online (Sandbox Code Playgroud)
由于flash方法不重定向它根本不提供csrf保护.在方法中使用return;后不起作用.$this->flash()_crsf_error
PS:这里有完整的代码
所以我写控制器:
@app.route('/')
def index():
flash('Hello world!', 'success')
return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
然后在我的模板中,我输出这样的 flash 消息:
{%- with messages = get_flashed_messages(with_categories=true) -%}
{%- if messages -%}
<ul class="flashes unstyled">
{%- for category, message in messages -%}
<li class="alert alert-{{ category }}">
<a class="close" data-dismiss="alert">×</a>
{{ message }}
</li>
{%- endfor -%}
</ul>
{%- endif -%}
{%- endwith %}
Run Code Online (Sandbox Code Playgroud)
但问题是我总是只得到 'message' 类别,所以<li>与 classes 一样'alert alert-message'。
我阅读了文档,对我而言,我做的一切都正确,但'flash'函数忽略了第二个参数并始终使用默认值'message'(而不是我给出的“成功”)。
我想知道是否有人遇到过这个问题并且知道如何处理它?
我现在开始使用Express,并希望显示一条简单的flash错误消息,这只是无法正常工作.
app.js
var flash = require('connect-flash');
...
var app = express(); // create an express app
// configure environments
app.configure(function(){
...
app.use(express.cookieParser('keyboard cat'));
app.use(express.session({ cookie: { maxAge: 60000 }}));
app.use(flash());
app.use(app.router);
});
app.get('/signup', routes.signup);
app.post('/signup', routes.adduser);
...
Run Code Online (Sandbox Code Playgroud)
和我的 router.js
exports.signup = function(req, res) {
console.log(req.flash('error'));
res.render('signup', {message: req.flash('error')});
}
Run Code Online (Sandbox Code Playgroud)
和
exports.adduser = function(req, res) {
// get the form values from "name" attribute
var username = req.body.username;
var email = req.body.useremail;
var password = req.body.userpassword;
User.findOne({'username': username}, function(err, user) { …Run Code Online (Sandbox Code Playgroud) 我是 Node.js 的初学者,我非常喜欢它。我想知道如何才能以最好、最简单的方式处理 Flash 消息。
我在我的网站中使用了 connect-flash 包。它有更好的吗?
我总是将 Flash 消息放入渲染函数中,如下所示:
res.render('auth/login', {
title: 'Log in',
success: req.flash('success'),
error: req.flash('error')
});
Run Code Online (Sandbox Code Playgroud)
它有办法处理全球事务吗?就像在 res.locals.messages 变量或类似的东西中?
我使用 JADE html 模板,所以我像 #{success} 一样打印它们。我如何以这种方式访问全局变量来打印我的闪存消息?
非常感谢您的帮助和建议!
我正在尝试显示闪存数据,但显示不正确。它显示:
{{ Session::get('flash_message') }}
Run Code Online (Sandbox Code Playgroud)
但这应该是消息
"Your article has been created"
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题吗?谢谢!
在我的控制器中我有:
public function store(ArticleRequest $request)
{
Auth::user()->articles()->create($request->all());
\Session::flash('flash_message', 'Your article has been created');
return redirect('articles');
}
Run Code Online (Sandbox Code Playgroud)
我的app.blade.php是:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>App Name - @yield('title')</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="{{ elixir('css/all.css') }}">
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div class="container">
@if(Session::has('flash_message'))
<div class="alert alert-success">{{ Session::get('flash_message') }}</div>
@endif
@yield('content')
</div>
@yield('footer')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在我的route.php 中,我有以下内容:花括号将内容显示为字符串而不是变量。
{{ Session::get('flash_message') }}
Run Code Online (Sandbox Code Playgroud)
我在尝试使用 Flash 消息时遇到了一些问题flash[:notice]。flash 消息没有显示它的消息
这是我的部分表单视图
<%= form_tag bulk_push_api_v1_notifications_path do |f| %>
<fieldset class="inputs">
<legend>
<span>Details</span>
</legend>
<% if flash[:notice].present? %>
<p class='flash-notice'><%= flash[:notice] %></p>
<% elsif flash[:error].present? %>
<p class='flash-error'><%= flash[:error] %></p>
<% end %>
<ol>
<li class="file input required" id="play_media_input">
<%= label_tag(:message, "Message : ") %>
<%= text_area_tag :message, nil, :required => true %>
<p class="inline-hints">Only text can be sent</p>
</li>
</ol>
</fieldset>
<fieldset class="actions">
<ol>
<li class="action input_action " id="play_submit_action">
<%= submit_tag("Send Notification") %>
</li>
</ol> …Run Code Online (Sandbox Code Playgroud) 我有一个自定义错误控制器来显示动态错误页面(404,422,500等),一切正常但我无法删除flash消息(根据http://blog.plataformatec.com.br/2012/01/my -five-favorite-hidden-features-in-rails-3-2 /).
有没有办法删除我的自定义错误控制器中的闪存?
我使用 Laravel 9,我使用 flash 方法显示消息,但在 flash 方法中显示错误,未定义方法 'flash' intelephense(1013)
$request->session()->flash('status', 'Task was successful!');
return redirect('/admin');
Run Code Online (Sandbox Code Playgroud) 我一直在研究烧瓶,我遇到了闪光灯.如果在服务器端调用了闪存,它会在页面上显示一条消息.但是,我想在警告框中显示内容get_flashed_messages().我尝试创建JS函数并传递{{message}},但循环打印调用,即将调用作为字符串.
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决吗?
我现在正在为我的 React 应用程序实现 Rails 之类的 Flash 消息。Flash 消息本身很好,但现在我希望 Flash 消息在某些页面中自动消失。我最初在我的 Flash 组件中使用了 setTimeout 但收到了这个错误。
未捕获错误:不变违规:enqueueCallback(...):您使用不可调用的回调调用了 setProps、replaceProps、setState、replaceState 或 forceUpdate。
这是代码。
import React from 'react/addons';
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
class Flash extends React.Component {
constructor(props) {
super(props);
this.state = {
message: this.props.message
}
}
componentWillReceiveProps(nextProps) {
let _this = this;
this.setState({
message: nextProps.message
});
if (nextProps.autoDisappear) {
window.setTimeout(() => {
_this.setState({
message: null
}, 2000)
})
}
}
onClick(e) {
this.setState({
message: null
});
}
render() {
let transitionName = "flash-anim"
if …Run Code Online (Sandbox Code Playgroud) 我的方法put_flash(conn)和get_flash(conn)方法表现得很奇怪;当我使用重定向时,一切正常,但当我尝试添加flash_msg后面的控制器时,什么也没有显示。
看起来消息存储在:phoenix_flash而不是:plug_session; 知道那里出了什么问题吗?
def index(conn, _params) do
conn
|> put_flash(:info, "Welcome : info")
|> put_flash(:error, "Welcome : error")
render conn, "index.html"
end
private: %{EverlearnWeb.Router => {[], %{}},
:phoenix_action => :index,
:phoenix_controller => EverlearnWeb.PageController,
:phoenix_endpoint => EverlearnWeb.Endpoint,
:phoenix_flash => %{"error" => "Welcome : error", "info" => "Welcome : info"},
:phoenix_layout => {EverlearnWeb.LayoutView, :app},
:phoenix_pipelines => [:browser], :phoenix_router => EverlearnWeb.Router,
:phoenix_view => EverlearnWeb.PageView,
:plug_session => %{"_csrf_token" => "xxx",
"phoenix_flash" => %{"info" => …Run Code Online (Sandbox Code Playgroud) 我正在从事一个项目,用于接收大型 excel 文件并以 PDF 形式将它们吐出。
我的代码在https://github.com/haincha/Project
它有模板文件和所有。
出于某种原因,我只是找不到好的文档,或者我的生活很糟糕。
弄清楚了
代码正在运行,但丢失了:
app.secret_key = 'some_secret'
Run Code Online (Sandbox Code Playgroud)
其他一切都很好。
flash(Markup(str(count) + " file(s) have been converted into PDF."))
return render_template("upload.html")
Run Code Online (Sandbox Code Playgroud)
这就是我在漫长的一天后阅读文档时发生的情况。