Laravel Nova没有找到某些型号

问题描述

对于某些模型,当我为它们创建新的Nova资源时,Nova似乎找不到模型,因为它们没有显示在侧边栏上(我也无法通过URL到达它们,给了我404) 。 但这仅在特定的模型上发生,如果我尝试用另一个模型(编辑$ model变量)修改Resource中的目标Model,它将起作用并在边栏中显示Resource(但使用错误的模型)。 Nova不会抛出任何错误,因此调试变得异常困难。

在我的项目中不起作用的模型分别命名为“产品”和“公司”。

我在Homestead上使用Laravel 7.28.3,Nova 3.9.1,MariaDB 10.4.11和PHP 7.4.1。

这是产品资源的代码:

<?php

namespace App\Nova;

use Illuminate\Http\Request;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Http\Requests\NovaRequest;

class Product extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = \App\Product::class;

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'title';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [
        'id','name'
    ];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function filters(Request $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function lenses(Request $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function actions(Request $request)
    {
        return [];
    }
}

这是型号代码:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class Product extends Model implements HasMedia
{
    use InteractsWithMedia;

    public function visits()
    {
        return visits($this);
    }

    public function user() {
        return $this->belongsTo('App\User');
    }

    public function company() {
        return $this->belongsTo('App\Company');
    }

    public function productVariety() {
        return $this->belongsTo('App\ProductVariety','product_variety_id');
    }

    public function productSpecies() {
        return $this->belongsTo('App\ProductSpecies','product_species_id');
    }

    public function productNutrients() {
        return $this->hasMany('App\ProductNutrient');
    }

    public function baseProduct() {
        return $this->hasOne('App\Product','base_product_id');
    }

    public function recipes() {
        return $this->hasMany('App\Recipe','base_product_id');
    }

    protected $fillable = [
        'user_id','company_id','imageline_id','products_species_id','products_varieties_id','base_product_id','name','scientific_name','production_start','production_end','production_city','description','story','curiosities','advices','quantity_advices','why_good','who_good','is_base_product','show_related_recipes','show_related_products'
    ];

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)