Sono un neofita di Tratti, ma ho un sacco di codice che si sta ripetendo nelle mie funzioni e voglio usare i tratti per rendere il codice meno disordinato. Ho creato una directory Traits
nella mia directory Http
con un tratto denominato BrandsTrait.php
. E tutto ciò che fa è chiamare su tutte le marche. Ma quando provo a chiamare BrandsTrait nei miei prodotti Controller, in questo modo:Come utilizzare i tratti - Laravel 5.2
use App\Http\Traits\BrandsTrait;
class ProductsController extends Controller {
use BrandsTrait;
public function addProduct() {
//$brands = Brand::all();
$brands = $this->BrandsTrait();
return view('admin.product.add', compact('brands'));
}
}
mi dà un errore che dice Metodo [BrandsTrait] non esiste. Suppongo di inizializzare qualcosa o di chiamarlo in modo diverso?
Ecco il mio BrandsTrait.php
<?php
namespace App\Http\Traits;
use App\Brand;
trait BrandsTrait {
public function brandsAll() {
// Get all the brands from the Brands Table.
Brand::all();
}
}
oh wow, non l'ho notato, mio errore. Grazie. – David
Posso ottenerlo con l'ereditarietà, cosa offre in più i tratti? –
PHP non supporta l'ereditarietà multipla e, in quanto tale, consente solo di estendere una singola classe. Con i tratti comunque, puoi usare quanti ne vuoi. – maddockst