Ich habe eine Tabelle mit Spalte ID. Ich möchte einen Accessor für dieselbe Spalte erstellen.Laravel Accessor für ID-Spalte
Modell.
protected $table = 'repair_category';
protected $fillable = ['ID,','Name','Active','Background_Color','Icon_File_Name','ListOrder'];
protected $primaryKey = 'ID';
Ich versuchte
public function getIDAttribute($value)
{
return Crypt::encrypt($value);
}
und
public function getIdAttribute($value)
{
return Crypt::encrypt($value);
}
Aber seine nicht funktioniert.
Bitte schlagen Sie einen Weg, um dieses Problem zu lösen.
so zu lesen, was ist Ihr Primärschlüssel und wie definieren Sie es in Ihrem Modell? –
Ich denke, es gibt ein Designproblem mit Ihrer Datenbank: Ihr Primärschlüssel sollte nur eine ganze Zahl sein und eindeutig sein. Ein verschlüsselter Inhalt kann eine Kollision erzeugen (zwei verschiedene Elemente, die den gleichen Hash erzeugen), also ist dies kein eindeutiges Element. Warum können Sie keine weitere Spalte für den verschlüsselten Inhalt erstellen? Und auch: warum müssen Sie Ihre IDs krypten? –
@MarcBrillault, ich möchte die PK der Tabellenzeile vollständig aus dem Browser ausblenden. damit ich die ID aus der Tabelle kryptieren möchte. Ich kann das Ergebnis erhalten, wenn ich die PK-Spalte in ID ändere, aber ich möchte den Spaltennamen nicht ändern. – Jishad