<?php
namespace App\Nova;
use Acme\MultilangText\MultilangText;
use App\Models\Language;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Image;
use Laravel\Nova\Fields\MorphedByMany;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Http\Requests\NovaRequest;
use Oneduo\NovaFileManager\FileManager;
class Country extends Resource
{
/**
* The model the resource corresponds to.
*
* @var class-string<\App\Models\Country>
*/
public static $model = \App\Models\Country::class;
/**
* The single value that should be used to represent the resource when being displayed.
*
* @var string
*/
public static $title = 'name';
/**
* The columns that should be searched.
*
* @var array
*/
public static $search = [
'name',
'code',
];
public static $trafficCop = false;
public function title()
{
// dd($this->title);
// dd(json_decode($this->title)->text);
// dd(Arr::first(json_decode($this->title)->text));
return $this->name && json_decode($this->name)->text ? Arr::first(json_decode($this->name)->text) : $this->id;
}
/**
* Get the fields displayed by the resource.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function fields(NovaRequest $request)
{
$countries = \App\Models\Country::query()->get();
$languages = Language::query()->get();
$uploadLink = route('nova.fields.upload.image');
return [
ID::make()->sortable()->hide(),
MultilangText::make(__('Name'), 'name')->languages($languages)->countries($countries)->uploadLink($uploadLink)
->placeholder('')->fullWidth(),
// Text::make(__('Name'), 'name')
// ->required(),
Text::make(__('Code'), 'code')
->hideWhenUpdating()
// ->showOnCreating()
->required(),
FileManager::make(__('Icon'), 'icon'),
Boolean::make(__('Visibility'), 'is_enabled'),
];
}
/**
* Get the cards available for the request.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function cards(NovaRequest $request)
{
return [];
}
/**
* Get the filters available for the resource.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function filters(NovaRequest $request)
{
return [];
}
/**
* Get the lenses available for the resource.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function lenses(NovaRequest $request)
{
return [];
}
/**
* Get the actions available for the resource.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function actions(NovaRequest $request)
{
return [];
}
}