我总是看到以形式传递给模型方法的参数$this->example_model->method('Some Title');
我最近在这里看到了一个答案(现在找不到),说正确创建的模型应该接收这样的方法的参数:
$this->example_model->method->title = 'Some Title';
我似乎无法弄清楚如何做到这一点,模型方法会是什么样子来实现这一点?这真的是应该如何传递参数吗?
我总是看到以形式传递给模型方法的参数$this->example_model->method('Some Title');
我最近在这里看到了一个答案(现在找不到),说正确创建的模型应该接收这样的方法的参数:
$this->example_model->method->title = 'Some Title';
我似乎无法弄清楚如何做到这一点,模型方法会是什么样子来实现这一点?这真的是应该如何传递参数吗?
好吧,取决于需求和使用情况。
假设我需要从模型中的数据库表中提取所有条目 - 这很好:
$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();
基本上,所有解决方案都很好——没有一个是最正确的,仍然有几种方法可以实现相同的目标。但是有些比其他的更具可读性(并且不易出错)。您应该选择适合您并且您可以轻松使用的任何东西。