Collin James のこの優れたソリューションをLaravel 4で動作するように更新しようとしました。
運がなければ知るまで。これは私が思いついたものです:
/app/libraries/Model.php (composer を使用してライブラリ ディレクトリを登録しました)
namespace Elegant;
class Model extends \Illuminate\Database\Eloquent\Model {
function __construct()
{
echo 'Show me if the Model exension works<br />';
}
protected function query()
{
echo 'Show me if the query function gets called<br />';
return new \Elegant\Query($this);
}
}
/app/libraries/Query.php (composer を使用してライブラリ ディレクトリを登録しました)
namespace Elegant;
class Query extends \Illuminate\Database\Query {
public function __construct()
{
echo 'Show me if the Query exension works<br />';
}
public function byArray($column, $value)
{
if (is_array($value))
return $this->whereIn($column, $value);
else
return $this->where($column, '=', $value);
}
public function __call()
{
}
}
/app/config/app.php
'aliases' => array(
...
'Eloquent' => 'Elegant\Model',
...
)
機能する唯一のものは次のとおりです。
- 「モデルエクステンションが機能するかどうか見せてください」.
他の「マーカー」は機能しません。
- query() はまったく呼び出されません
- 最初にElegant/Queryを見る代わりに、Eloquent/Queryが使用されます