我正在使用PHP处理flash消息,但我希望为每个flash消息都有一个特定的标题。我的header.php中设置了我的flash消息容器,所以我可以在我的网站上的任何地方使用这个系统:
<?php if(isset($_SESSION["flash-message"])): ?>
<?php foreach($_SESSION["flash-message"] as $type => $message): ?>
<div class="alert alert-<?= $type; ?>">
<p><?= $message; ?></p>
</div>
<?php endforeach; ?>
<?php endif; ?>
要执行它,我使用它:
$_SESSION["flash-message"]["success"] = "Test";
所以,我有:
现在,我想要一个头衔,你知道吗?这样的事情:
$_SESSION["flash-message"]["title" = "The title"]["success"] = "The message"
就是这样的。我希望标题上方的标题。
答案 0 :(得分:2)
简答:使用数组或对象存储带有相应标题的邮件。
$_SESSION["flash-message"]["success"] = array("Title", "The Message");
您的代码将如下:
<?php if(isset($_SESSION["flash-message"])): ?>
<?php foreach($_SESSION["flash-message"] as $type => $message): ?>
<div class="alert alert-<?= $type; ?>">
<h2><?= $message[0]; ?></h2>
<p><?= $message[1]; ?></p>
</div>
<?php endforeach; ?>
<?php endif; ?>
编辑: 如果您有多个成功消息会怎样?您当前的代码不支持多个&#34;相同的类型&#34;消息。它应该是:
$_SESSION["flash-message"]["success"][] = array("Title", "The Message");
存储多个&#34;同类型&#34;消息。
EDIT-2: 您还可以使用对象方法 - 更具可读性。还包含我上面提到的多种消息能力。
<?php
$message = new stdClass();
$message->title = "Title";
$message->message = "The Message";
$_SESSION["flash-message"]["success"][] = $message;
?>
<?php if(isset($_SESSION["flash-message"])): ?>
<?php foreach($_SESSION["flash-message"] as $type): ?>
<?php foreach ($type as $message): ?>
<div class="alert alert-<?= $type; ?>">
<h2><?= $message->title; ?></h2>
<p><?= $message->message; ?></p>
</div>
<?php endforeach; ?>
<?php endforeach; ?>
<?php endif; ?>
答案 1 :(得分:1)
$_SESSION["flash-message"]
应该是消息的数组,消息应该有 event_type ,标题和内容。
您可以使用类或关联数组以多种形式对消息建模。请参阅此示例 message 使用关联数组建模:
$a_message = [
"event_type" => "success",
"title" => "The title"
"content" => "The message"
];
这样,您可以像这样实现 foreach 循环:
<?php if(isset($_SESSION["flash-message"])): ?>
<?php foreach($_SESSION["flash-message"] as $message): ?>
<div class="alert alert-<?= $message["event_type"]; ?>">
<h1><?= $message["title"]; ?></p>
<p><?= $message["content"]; ?></p>
</div>
<?php endforeach; ?>
<?php endif; ?>