Ich habe ein Problem, ich kann keine Richtlinien in Laravel 5.2 verwenden.Wie richtig Richtlinien in Laravel 5.2 verwenden? Ich kann nicht
Ich habe 2 Tabellen, Studenten und Aufgaben.
Ich versuche, eine Richtlinie anwenden, um die Bearbeitung einer Aufgabe durch Ändern der URL zu verhindern, aber ich bekomme immer die Nachricht Diese Aktion ist nicht autorisiert obwohl die Aufgabe der richtige Benutzer ist.
Richtlinien:
<?php
namespace App\Policies;
use App\Models\Student;
use App\Models\Task;
class TasksPolicy
{
public function edit(Student $student, Task $tasks)
{
return $student->id === $tasks->student_id;
}
}
-Code in AuthServiceProvider.php
<?php
namespace App\Providers;
use App\Models\Task;
use App\Policies\TasksPolicy;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
Task::class => TasksPolicy::class
];
Und dann der Aufruf in der TaskController.php Datei:
public function edit($id)
{
$tasks = Task::findOrFail($id);
$this->authorize('edit', $tasks);
return view('tasks.edit', compact('tasks'));
}
Ich denke, der Code ist gut weil ich mehrmals überarbeitet habe, aber wie gesagt habe ich immer die Nachricht Diese Aktion ist nicht autorisiert obwohl die Aufgabe ist, den Benutzer zu bearbeiten.
http://i.imgur.com/2q6WFb3.jpg
Was mache ich falsch? Wie kann ich die Richtlinie richtig verwenden?
I don‘ Ich denke, es soll zwischen zwei Modellen verwendet werden. Einer von ihnen muss das "Benutzer" -Modell sein. – Hkan
Hallo, Tabellenbenutzer verwenden es für andere Benutzer, also muss ich die Schüler-Tabelle verwenden (Ich benutze multi-Auth Laravel 5.2). –
Was bekommen Sie, wenn Sie 'dd ($ student-> id, $ tasks-> student_id)' in der 'edit()' Methode verwenden? –