我的目标是包括位于资源/视图中的其他来源的代码。我尝试使用resource_path('views/myfiles.php')
,但是它什么也没做。
控制器
class MyController extends Controller
{
public function test(Request $request)
{
if($request->input('name') == "chair")
{
$theFilesLocation = "resources.views" . $request->input('name');
@include($theFilesLocation) //something like this
}
}
}
myfiles.php
<?php
dump("if this shows up, then the code works")
?>
答案 0 :(得分:1)
尝试下面的代码,但我认为这不是一个好方法。
class MyController extends Controller
{
require_one(resource_path('views/myfile');
}
或使用Laravel文件外观
class MyController extends Controller
{
\File::requireOnce(resource_path('views/myfile');
}
您应该创建一个类并将代码放在此处,然后从控制器调用它是一个更好的解决方案。
答案 1 :(得分:1)
您要寻找的是trait。这样可以轻松共享代码和功能,而不必从引起继承地狱的特定基类继承。
namespace MyCode\Traits;
trait SharedCodeForThing {
public function blaTheBla() {
dump("if this shows up, then the code works");
}
}
然后在您的控制器中
use MyCode\Traits\SharedCodeForThing ;
class MyController extends Controller
{
use SharedCodeForThing;
}
现在,如果您只想呈现看起来像在的视图内容:
public function test(Request $request)
{
if($request->input('name') == "chair")
{
$view = view('resources.views' . $request->input('name'));
return $view->render();//or echo $view->render(); whatever you like
}
}