2

我总是看到以形式传递给模型方法的参数$this->example_model->method('Some Title');

我最近在这里看到了一个答案(现在找不到),说正确创建的模型应该接收这样的方法的参数:

$this->example_model->method->title = 'Some Title';

我似乎无法弄清楚如何做到这一点,模型方法会是什么样子来实现这一点?这真的是应该如何传递参数吗?

4

1 回答 1

0

好吧,取决于需求和使用情况。

假设我需要从模型中的数据库表中提取所有条目 - 这很好:

$this->example_model->get();

假设我需要根据某些标准获取所有条目。我可能会做这样的事情:

$criterias = array('age' => '> 10', 'gender' => 'm');
$this->example_model->get($criterias);

你想要完成的事情更像是这样的:

$this->example_model->criterias->age = '> 10';
$this->example_model->criterias->gender = 'm';
$this->example_model->get();

或者您可以使用更理想的方法绑定:

$this->example_model->set_criteria('age', '> 10');
$this->example_model->set_criteria('gender', 'm');
$this->example_model->get();

// With method binding:
$this->example_model->set_criteria('age', '> 10')->set_criteria('gender', 'm')->get();

基本上,所有解决方案都很好——没有一个是最正确的,仍然有几种方法可以实现相同的目标。但是有些比其他的更具可读性(并且不易出错)。您应该选择适合您并且您可以轻松使用的任何东西。

于 2012-08-04T20:10:25.157 回答