无法让控制器工作 - MVC

时间:2016-05-29 23:48:07

标签: php model-view-controller

所以我是PHP的新手,我的任务是创建一个数据库表,创建一个与表交互的模型,并创建一个控制器文件,该文件具有一个使用该模型显示所有字段和数据的动作函数。我能够创建db表和模型,但是我在创建控制器时遇到了问题。这是我对模型和控制器的所作所为:

模型     

Class Tyler extends ActiveRecord
{
public function tableName()
{
    return 'tyler';
}

public function rules()
{

    return array(
        array('GUITAR_NUM, YEAR', 'length', 'max'=>4),
        array('BRAND, MODEL, COLOR', 'length', 'max'=>20),
        array('GUITAR_NUM, YEAR, BRAND, MODEL, COLOR', 'safe',    on'=>'search'),
        array('GUITAR_NUM, YEAR, BRAND, MODEL, COLOR', 'required'),
    };
}

public function attributeLabels()
{
    return array(
        'GUITAR_NUM' => 'Guitar Number',
        'BRAND' => 'Brand',
        'MODEL' => 'Model',
        'YEAR' => 'Year',
        'COLOR' => 'Color',
    };
}
}

?>

控制器

<?php
namespace app\controllers;

use yii\web\Controller;
use app\models\TylerModel;

Class TylerController extends Controller
{
    public function actionIndex()
        $data = Tyler::model()->findAll();

    foreach($data as $d)
    {

    echo $d->name.'<br>';

    }

    return $this->render('index',
    [
           'tyler' => $tyler,
    ]);

};
?>

由于我使用了actionIndex,表中的所有数据都应该转到特定的url,但只是得到404错误。我尝试过很多不同的东西,但似乎没什么用。反馈/帮助将非常感谢!

1 个答案:

答案 0 :(得分:2)

我在你的代码中注意到的第一件事就是你在渲染中。您要发送$tyler而不是$data。解决404状态后,这肯定会出错。

关于404状态,您使用的是UrlManager规则吗?通常它们位于Yii2项目中main.php目录下的config文件中(对我来说看起来像Yii2应用程序)。如果是这种情况,您可以回复相关代码吗?