【发布时间】:2020-06-16 10:40:07
【问题描述】:
我是 Laravel 的 Nova 的新手,到目前为止发现它很好,但是,在我的一些资源字段中,我使用“BelongsTo::make”来引用模型中定义的关系。
它在显示它所引用的车辆的索引页面和更新和创建页面上运行良好,我希望看到生成的选择输入,以便用户可以选择他们想要的车辆,但是,我收到以下错误:
试图获取非对象的属性'resourceClass'
非常感谢任何帮助。
表格
CREATE TABLE `vehicle_service` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`vehicle_id` INT(11) NOT NULL,
)
CREATE TABLE `vehicles` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
)
Laravel 模型
class VehicleService extends Model
{
protected $table = 'vehicle_service';
protected $casts = [
'last_service_date' => 'date',
];
public function vehicle() {
return $this->belongsTo(Vehicle::class, 'vehicle_id');
}
}
Laravel Nova 资源
class VehicleService extends Resource
{
public static $model = \App\Models\VehicleService::class;
public function fields(Request $request)
{
return [
];
}
public function fieldsForIndex(NovaRequest $request)
{
return [
BelongsTo::make('Vehicle', 'vehicle', 'App\Nova\Vehicle')
->rules('required')
->viewable(false),
];
}
public function fieldsForDetail(NovaRequest $request)
{
BelongsTo::make('Vehicle', 'vehicle', 'App\Nova\Vehicle')
->viewable(false),
}
}
API 路径
我在GitHub 上遇到了这个建议,但删除车辆服务之间的破折号似乎没有影响
/nova-api/vehicle-services/associatable/vehicle?first=false&search=&withTrashed=false&resourceId=2&viaResource=&viaResourceId=&viaRelationship=
版本:
- PHP - v7.4.5
- Laravel - v7.15.0
- Nova - v3.6.0
【问题讨论】:
标签: php laravel laravel-nova