Ich bin neu in Traits, aber ich habe eine Menge Code, der sich in meinen Funktionen wiederholt, und ich möchte Traits verwenden, um den Code weniger unordentlich zu machen. Ich habe ein Verzeichnis Traits
in meinem Verzeichnis Http
mit einer Eigenschaft namens BrandsTrait.php
gemacht. Und alles, was es tut, ist alle Marken anzurufen. Aber wenn ich versuche BrandsTrait in meine Produkte Controller zu nennen, wie folgt aus:Traits - 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'));
}
}
es gibt mir eine Fehlermeldung, Methode [BrandsTrait] existiert nicht. Soll ich etwas initialisieren oder anders nennen?
Hier ist meine 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, habe das nicht bemerkt, mein Fehler. Danke. – David
kann ich dies mit Vererbung erreichen, was plus bieten die Merkmale? –
PHP unterstützt keine Mehrfachvererbung und als solches können Sie nur eine einzelne Klasse erweitern. Mit Eigenschaften können Sie jedoch beliebig viele verwenden. – maddockst