- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在过去,我使用了一种专有框架,该框架有点遵循类似于 Objective-C 的 View Controller 方案。
基本上我能够在一个 Controller 中实例化另一个 Controller 并将一些值传递给它,例如产品数组,然后将对 Controller 的引用注入(inject)我的 View 并在我需要时通过发出以下命令呈现它:$controllerReference->渲染();
这在很多情况下都很有用,例如。如果我有一个负责呈现目录的 Controller ,我会向它传递一个数组,其中包含我想看到的所有项目,它会进行分页并自行显示项目...
例子:
在\UI\Homepage\Controller.php(负责主页的 Controller ):
// Instantiate a ProductDisplay Controller
$controllRef = new \UI\ProductDisplay\Controller();
$controllRef->setProducts( ... ); // Inject the product array
// Load the current view for this controller and pass it a reference for the ProductDisplay controller
$this->loadSelfView(["controllRef" => $controllRef]);
在\UI\Homepage\View.php(之前加载的 View ):
// some html of the view
$controllRef->render(); // Render the ProductDisplay view here!
// some other html
这个功能在 Laravel 中应该如何实现?从我一直在阅读的内容来看,Laravel 试图避免这种行为,为什么?解决方法是什么?
谢谢。
最佳答案
这是我将如何做到这一点,它只有在被调用的 Controller 方法返回一个 View 对象时才有效,如 return view('home');
:
// Get the controller class from the IOC container
$myController= \App::make(MyController::class);
// Execute the controller method (which return a View object)
$view = $myController->myControllerMethod($someParams);
// Return the View html content
$html = $view->render();
您可以使用由所有其他 Controller 扩展的 Controller.php 类在其中创建一个通用方法:
关于php - 拉维尔 5 : Controller Inter-Communication and Instantiation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569779/
我正在使用 git clone 部署我的 Laravel 项目并使用 git pull 进行更新 它工作正常,但每次部署时,我都必须从 config/app.php providers 数组和 ali
我是一名优秀的程序员,十分优秀!