在数据传递给视图之前编辑数据


Laravel - edit data before passing to view

我正在寻找一种在将数据传递给视图之前编辑数据的方法。

快速示例(只是为了演示):假设我通过控制器将变量$name传递给视图。我想使用一些东西来传递另一个包含Hello $name的变量$message,因此例如Hello John,如果变量$name将是John。

我不想在控制器中发送第二个变量,因为我将使用很多控制器,视图而我想对数据做的事情相当复杂

我需要使用这两个变量view("foobar", ["foo" => "bar"])和会话view("foobar")->with("foo", "bar")

我尝试使用中间件服务提供商,但问题是我无法访问发送的数据。

唯一可能的解决方案,我现在能想到的是使用视图布局,我要包括到每个视图,这将转换变量(使用<? $message = "Hello $name"; ?>在视图),但这似乎不像正确的MVC解决方案对我。

谢谢大家的回答!

如果你想传递会话数据和多个变量,这样做:

session()->flash('message', 'some message');
return view('foobar', [
    'foo' => 'bar',
    'second' => 'something'
]);

如果我没理解错的话,你是想使用view composer