【发布时间】:2014-08-23 13:59:13
【问题描述】:
Laravel 新手,OOP 仍然新鲜!我假设这与 OOP 的关系比严格意义上的 Laravel 更多。
所以我的主要问题是我试图通过我的模型中名为 Income 的方法将名为“fin_income_category”的数据库表中的所有行传递给名为 PlannerController 的控制器。为此,我在 Income 中创建了一个名为 getIncomeCategories() 的静态方法
首先,这是我在收入中的 __construct 方法:
public function __construct($income, array $attributes = array()){
parent::__construct($attributes);
$this->table = $income;
}
这也是收入中的 getIncomeCategories 方法:
public static function getIncomeCategories(){
$category = new self('fin_income_category');
$categories = $category->all();
return $categories;
}
最后,这是 PlannerController 中的 edit($id) 方法,我将在其中调用此方法并将类别传递给我的视图。请注意,只有该函数中的第一个语句是有问题的......其他的工作正常:
public function edit($id)
{
$income_categories = Income::getIncomeCategories();
$newIncome = new Income('fin_income');
$newRecord = $newIncome->where('id', '=', $id)->get();
return View::make('planner.edit', array('record'=>$newRecord, 'categories'=>$income_categories));
}
当我像这样运行代码时,我从 Laravel 收到一个错误:
错误异常
Income::__construct() 缺少参数 1, 在第 615 行调用 /opt/lampstack/frameworks/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php 并定义
在我实例化新收入的其他情况下,我没有收到此错误。
【问题讨论】:
标签: php function class oop laravel-4