Come utilizzare html nel titolo della risorsa Laravel Nova
Sono bloccato con l'inserimento di un output html in Laravel 7 e nova 3.8
secondo:https://nova.laravel.com/docs/3.0/search/global-search.html#title-subtitle-attributes
provo a creare una funzione che metta un'immagine html davanti a qualche risorsa nelle pagine di indice:
public function title()
{
return "<img width='20px' height='10px' src='./flags/".$this->country.".png' >";
}
Ho letto che laravel 7 usa {!! !!} (https://laravel.com/docs/7.x/blade#displaying-data) Ma se lo uso nel file di risorse in app/nova/some-resource.php php dà errore.
Come inserire facilmente un'immagine basata sul campo del paese nel titolo della risorsa?
-- aggiornamento 23.08.2020
Ho provato a creare un campo di testo nella mia risorsa in quanto può avere -> asHtml () e ho una bella immagine di bandiera sull'indice e sulla vista dettagliata
public function fields(Request $request)
{
return [
(...)
Text::make('Country Flag',
function () {
return "<img width='20px' height='10px' src='http://fishmarket.nowakadmin.com/flags/".$this->country.".png' >";
})->asHtml(),
(...)
]};
e nel titolo ho cambiato in:
public function title()
{
return $this->country_flag.' '.$this->name;
}
Il risultato è che il titolo sembra
''' '.$this->name // it looks like $this->country_flag = '';
Risposte
prova questo:
// for index
public static function label()
{
// input your logic to show label
return 'Your Label Index';
}
L'unico wat per raggiungere l'obiettivo di utilizzare html in campo come ho trovato:
Invece di appartenere a ho usato Stack per usare html in Text e dati da altri campi necessari:
Stack::make('Details', [
Text::make('Country',
function () {
$flaga = DB::table('companies')->where('id', $this->company_id)->first();
return "<img width='20px' height='10px' src='/flags/".$flaga->country.".png'> ".$flaga->country;
})->asHtml()
->sortable(),
BelongsTo::make('Company')
->default(function ($request) {
return $request->user()->company_id;
})
->sortable(),
]),
E ho un codice HTML con l'immagine della bandiera e l'ID dell'azienda in un singolo campo sulla risorsa senza nemmeno toccare la risorsa $ titolo