我在Yii2中有一个非常糟糕的结构化项目,所以如果可能请不要注意它。
这是我的项目结构:
在 results.php 中,我想使用 FlightsController 类。 这是results.php中的include部分:
include \yii\helpers\Url::to('@app/views/site/partials/header.php');
include \yii\helpers\Url::to('@app/controllers/HotelController.php');
include \yii\helpers\Url::to('@app/controllers/ActivitiesController.php');
include \yii\helpers\Url::to('@app/controllers/FlightController.php');
FlightController类:
class FlightController
{
require_once(\yii\helpers\Url::to('@app/sabre/rest_activities/LeadPriceCalculator.php'));
public static function start_rest_workflow($origin, $destination, $departureDate){
$workflow = new \Workflow(new \LeadPriceCalendarActivity($origin, $destination, $departureDate));
$result = $workflow->runWorkflow();
}
}
我收到错误:
yii\base\ErrorException Expected array for frame 0
/controllers/FlightController.php yii\base\ErrorException::__toString
/views/site/results.php yii\web\View::unknown
在第一次导入require_once(\yii\helpers\Url::to('@app/sabre/rest_activities/LeadPriceCalculator.php'));
中。
如何从控制器目录中正确导入saber目录中的类?
答案 0 :(得分:1)
我认为您不了解或不了解它在yii2中工作的MCV软件架构模式。
我试图向你解释一个简历和一些sugerence:)
什么是MVC:
然后,当你需要在你的网站上有一个新页面时,你需要思考,是同一个想法的另一部分,或者它不是。如果它是相同的,您必须将文件设置在与其他路径相同的路径中,如此示例。 你有:
你想要添加一个新页面" view"在哪里它看到列表中的数据,而不是"视图"是您必须在同一页面中设置的同一个想法(用户)的一部分:
然后,在控制器中你必须写出你认为的大部分逻辑,在这种情况下是User,并且在这个Controller中将是3个动作,而miniumm(因为你有3个视图)
<强> UserController.php 强>
public function actionView($id){
}
public function actionIndex(){
}
public function actionForm(){
}
最后要解释的是一个模型,它很简单,这是一个表示你DB中的表的对象,你必须使用这样的,你可以在这里写一个查询并从控制器调用并制作一些东西。
在简历中,如果你要创建&#34; result.php&#34;你喜欢写干净 您将此文件设置为路径&#34; site&#34;并创建其他&#34;航班&#34; 通过exmaple,现在你可以使用来自的代码 FligthController.php zh_cn
中的函数
public function actionResult(){}