Sto provando a inserire un carattere all'interno di una classe chiamata Pagina. Devo anche rinominare una funzione di tratto in modo che non si scontri con una funzione di classe esistente. I pensato Ho fatto tutto questo con successo ma ottengo un errore che indica la posizione sbagliata ?!Come chiamare un metodo tratto con alias
Call to undefined function App\Pages\Models\myTraitDefaultScope()
Ho anche provato: MyTrait\defaultScope($query)
invece di cercare di rinominare la funzione in conflitto. Ma Allora ottengo il seguente errore:
Call to undefined function App\MyTrait\defaultScope()
Di seguito si riporta il tratto e la classe contenuta in file separati.
<?php
namespace App;
use Illuminate\Support\Facades\Auth;
trait MyTrait{
public function defaultScope($query){
return $query->where('active', '1')
}
}
.
<?php namespace Modules\Pages\Models;
use Illuminate\Database\Eloquent\Model;
use App\MyTrait;
class Page extends Model {
use MyTrait{
MyTrait::defaultScope as myTraitDefaultScope;
}
public function defaultScope($query){
return myTraitDefaultScope($query);
}
}
io non sono tutto ciò che impressionante a questo quindi per favore non sparare se ho qualcosa di male male :)
Non sicuro al 100%, ma non dovrebbe che essere 'return $ this-> myTraitDefaultScope ($ query);' in modo che php cerca la funzione sullo stesso oggetto? –