以下是添加新用户的Controller代码的摘录:
public function store()
{
$input = Input::all();
if (! $this->user->isValid($input))
{
return Redirect::back()->withInput()->withErrors($this->user->errors);
}
...
}
这里是添加新用户表单的Controller代码:
public function create()
{
return View::make('users.create');
}
请注意,我不需要向视图发送输入和错误,但我可以在那里访问它而没有任何问题。
但请看一些其他代码:
这是我删除用户的控制器代码:
public function destroy($id)
{
$user = User::find($id);
$deleted_message = 'User "' . $user->first_name . ' ' . $user->last_name . '" has been deleted.';
User::destroy($id);
return Redirect::route('users.index')->withMessage($deleted_message);
}
这是我的控制器代码,用于显示所有用户:
public function index()
{
$users = User::all();
return View::make('users.index')->withUsers($users);
}
为什么我没有在视图中显示$message
以显示所有用户?
答案 0 :(得分:0)
为什么我没有在视图中显示$ message来显示所有用户?
因为您没有检索它。使用withX()
魔术方法会将您的数据放入闪存存储区。这意味着,您需要从那里检索它。
<?php
class UserController extends Controller {
public function index()
{
$message = Session::get('message');
$users = [];
return Redirect::make('users.index')->withUsers($users)->withMessage($message);
}
public function destroy()
{
$deleted_message = "Some message that shows that something was deleted";
return Redirect::route('users.index')->withMessage($deleted_message);
}
}
在控制器index()
方法的第一行看看我在做什么。我正在引用会话存储的message
密钥。
当我们做的时候我们把它放在那里:
return Redirect::route('users.index')->withMessage($deleted_message);
withX()
是laravel(see here)自动提供的方法。附加到with
()的任何内容都将作为密钥存储到会话数据中。
如果你只是从laravel开始,依靠魔法可能不合适。为了更好地记住您实际执行的操作,您可能希望使用with()
方法,而不是传递密钥和值。
return Redirect::route('users.index')->with('message', $deleted_message);
答案 1 :(得分:0)
您可以发送以下信息:
return Redirect::route('your-route')->with('global', 'Your message');
使用以下内容将其添加到您的模板中:
@if(Session::has('global'))
<p>{{ Session::get('global') }}</p>
@endif