Laravel 4 有说服力的模型能否检索行上的元数据?
Laravel中基于雄辩的模型是否可以对基础表进行内省/反思,并检索有关列的信息(类型、大小、未签名、默认值等) 还是故意忽略了这一点Laravel 4 有说服力的模型能否检索行上的元数据?,laravel-4,eloquent,Laravel 4,Eloquent,Laravel中基于雄辩的模型是否可以对基础表进行内省/反思,并检索有关列的信息(类型、大小、未签名、默认值等) 还是故意忽略了这一点 我觉得能够确定列类型会很有用(可以智能地分配一些验证,或者帮助推断表单输入类型和/或填充默认值)。我认为在Laravel中“开箱即用”无法做到这一点,尽管它相对容易实现。也许是这样的 <?php class Model extends Eloquent { public function describe() { $ta
我觉得能够确定列类型会很有用(可以智能地分配一些验证,或者帮助推断表单输入类型和/或填充默认值)。我认为在Laravel中“开箱即用”无法做到这一点,尽管它相对容易实现。也许是这样的
<?php
class Model extends Eloquent {
public function describe()
{
$table = $this->getTable();
$pdo = \DB::connection()->getPdo();
return $pdo->query("describe $table")->fetchAll();
}
}
$model = new Model;
$columns = $model->describe();
// $columns:
array (
0 =>
array (
'Field' => 'id',
0 => 'id',
'Type' => 'int(10) unsigned',
1 => 'int(10) unsigned',
'Null' => 'NO',
2 => 'NO',
'Key' => 'PRI',
3 => 'PRI',
'Default' => NULL,
4 => NULL,
'Extra' => 'auto_increment',
5 => 'auto_increment',
),
1 =>
array (
'Field' => 'created_at',
0 => 'created_at',
'Type' => 'timestamp',
1 => 'timestamp',
'Null' => 'NO',
2 => 'NO',
'Key' => '',
3 => '',
'Default' => '0000-00-00 00:00:00',
4 => '0000-00-00 00:00:00',
'Extra' => '',
5 => '',
),
...
是的,我最后写了一些更高级的东西,将“descripe table”调用解析成一个更合理的数组(提取长度等等)。。我会将此标记为已接受,因为它适用于我的问题!谢谢