您好我使用laravel 4.我想知道如何调用函数:
$model->trans('name'), $model->trans('title')
作为
$model->transName(), $model->transTitle()
所以这意味着我想用参数name,or title
调用函数trans,但附加了函数名和参数。
whereEmail(), whereId()
。
我希望这是有道理的。
谢谢
答案 0 :(得分:0)
好的,如果您确定需要它,这里是使用魔术方法的工作示例
<?php
class Model
{
public function __call($func, $args)
{
if(strstr($func, 'trans'))
{
return $this->trans(strtolower(str_replace('trans', '', $func)));
}
return parent::__call($func, $args);
}
public function trans($field)
{
return $field;
}
}
$m = new Model();
$m->transSomething();
当调用未定义的方法时,它将检查方法名称是否以“trans”开头,如果是,则在开头时将其传递给$this->trans()
而不使用“trans”。
但在我看来,$model->trans('somefield')
的方式更好。