Yii2包括一个控制器

时间:2018-03-23 16:43:49

标签: php yii2

我在Yii2中有一个非常糟糕的结构化项目,所以如果可能请不要注意它。

这是我的项目结构:

enter image description here

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目录中的类?

1 个答案:

答案 0 :(得分:1)

我认为您不了解或不了解它在yii2中工作的MCV软件架构模式。

我试图向你解释一个简历和一些sugerence:)

什么是MVC:

  • 模型:数据库及其逻辑。
  • 查看:html代码并显示/呈现数据。
  • 控制器:代码逻辑的重要组成部分。

然后,当你需要在你的网站上有一个新页面时,你需要思考,是同一个想法的另一部分,或者它不是。如果它是相同的,您必须将文件设置在与其他路径相同的路径中,如此示例。 你有:

  • 用户/ form.php的
  • 用户/ index.php的

你想要添加一个新页面" view"在哪里它看到列表中的数据,而不是"视图"是您必须在同一页面中设置的同一个想法(用户)的一部分:

  • 用户/ view.php
  • 用户/ form.php的
  • 用户/ index.php的

然后,在控制器中你必须写出你认为的大部分逻辑,在这种情况下是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(){}