当我阅读Zend PHP认证学习指南5.5中的OOP章节时,我发现了一个让我对它的答案感到震惊的问题.这个问题是:
class Magic
{
public $a = "A";
protected $b = array( "a" => "A" , "b" => "B" , "c" => "C" );
protected $c = array( 1 , 2 , 3 );
public function __get( $v )
{
echo "$v";
return $this->b[$v];
}
public function __set( $var , $val )
{
echo "$var: $val,";
$this->$var = $val;
}
}
$m = new Magic();
echo $m->a . ", " . $m->b . ", " . $m->c . ", …Run Code Online (Sandbox Code Playgroud) 我正在尝试从两个不同的模型创建联合,id, body当发送dataProvider到GridView:时,两个模型在错误下方具有相同的列
SQLSTATE[07002]: [Microsoft][ODBC Driver 11 for SQL Server]COUNT field incorrect or syntax error
The SQL being executed was: SELECT COUNT(*) FROM ((SELECT [id], [body] FROM [web_article] WHERE body LIKE '%a%') UNION ( SELECT [id], [body] FROM [email_article] WHERE body LIKE '%a%' )) [c]
我复制了sql查询,然后运行它MSSQL Server,它返回结果!
在控制器代码下面:
$model = new DynamicModel([
'text', 'type'
]);
$model->addRule(['text'], 'required')
->addRule('text', 'string');
$emailArticle = EmailArticle::find()->select('id, body')->where('body LIKE :query')->addParams([':query'=>"%{$model->text}%"]);
$webArticle = WebArticle::find()->select('id, body')->where('body LIKE :query')->addParams([':query'=>"%{$model->text}%"]); …Run Code Online (Sandbox Code Playgroud)