2 回答
TA贡献1830条经验 获得超3个赞
决定如何在 Tinker 中显示模型属性的代码位于 Tinker 代码中,而不是模型中:
Casters 是Symfony VarDumper 组件的一部分, PsySH使用该组件来显示类。Tinker 是建立在 PsySH 之上的。
Tinker 将脚轮映射到其 Console 命令类中的类:
这将返回类到其施法者的映射:
/**
* Get an array of Laravel tailored casters.
*
* @return array
*/
protected function getCasters()
{
$casters = [
'Illuminate\Support\Collection' => 'Laravel\Tinker\TinkerCaster::castCollection',
'Illuminate\Support\HtmlString' => 'Laravel\Tinker\TinkerCaster::castHtmlString',
'Illuminate\Support\Stringable' => 'Laravel\Tinker\TinkerCaster::castStringable',
];
if (class_exists('Illuminate\Database\Eloquent\Model')) {
$casters['Illuminate\Database\Eloquent\Model'] = 'Laravel\Tinker\TinkerCaster::castModel';
}
if (class_exists('Illuminate\Foundation\Application')) {
$casters['Illuminate\Foundation\Application'] = 'Laravel\Tinker\TinkerCaster::castApplication';
}
return $casters;
}
这将设置 VarDumper 上的脚轮:
$config->getPresenter()->addCasters(
$this->getCasters()
);
如果要从模型中添加要在 Tinker 中显示的其他属性,可以在模型上使用 $ appends属性:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The accessors to append to the model's array form.
*
* @var array
*/
protected $appends = ['is_admin'];
}
- 2 回答
- 0 关注
- 79 浏览
添加回答
举报