我有个需求是这样的,需要在ServiceProvider里生成一段HTML代码,因为比较长,打算借助View实现。
我在service里执行了以下的代码:
\View::make('admin.messages', ['messageTitle' => $messageTitle, 'messageBody' => $messageBody, 'messageType' => $messageType]);
或者加上 render
\View::make('admin.messages', ['messageTitle' => $messageTitle, 'messageBody' => $messageBody, 'messageType' => $messageType])->render();
此service会在controller里执行,
执行的时候报错了,报的错是找不到某个变量,但是这个变量是controller里的view('*')加载的视图中的变量,在admin.messages是没有的。
所以我认为我的用法可能不对,希望大家帮我看看原因。
或者是有什么其它思路生成一段html代码不。
P.S. 我的原始需求是打算执行完某个动作时记住执行结果的提示信息到flash session,当redirect到新页面后,读出并且给个提示,因为这段提示涉及到的html代码有点长,所以有以上打算。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
没找到该问题的原因所在。
找了个其它方式实现。
编写了个service 由service Provider调用
这个service有两个方法,一个负责在controller里调用存入操作结果信息到flash session。这里没什么说的。
另一个方法主要是读出数据并return,关键是我用了view端的inject,具体代码如下:
这样在操作的controller里存好信息并转到新的controller并加载了view时,在view里include一下这个view即可。其中AppServicesCommonMessageAlert是上文提到的service