Ich versuche "Laravel-Module" und "Laravel-Erlaubnis-Paket". Aber wenn Post ausgeführt wird, hat es das Problem 'Methode [validate] existiert nicht.'. Ich habe 'Use Validator' hinzugefügt. aber nichts ändert sich. In einigen Themen entferne ich "Illuminate \ Routing \ Controller"; in PermissionController, aber es FehlerMethode [validate] existiert nicht. - Laravel 5.5
-Controller
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
Mein PermissionController
namespace Modules\User\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller;
use Auth;
//Importing laravel-permission models
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Session;
class PermissionController extends Controller
{
// use Validator;
public function __construct() {
$this->middleware(['auth', 'isAdmin']); //isAdmin middleware lets only users with a //specific permission permission to access these resources
}
/**
* Display a listing of the resource.
* @return Response
*/
public function index()
{
$permissions = Permission::all(); //Get all permissions
return view('user::permissions/index')->with('permissions', $permissions);
// return view('user::index');
}
/**
* Show the form for creating a new resource.
* @return Response
*/
public function create()
{
$roles = Role::get(); //Get all roles
return view('user::permissions/create')->with('roles', $roles);
}
/**
* Store a newly created resource in storage.
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$this->validate($request, [
'name'=>'required|max:40',
]);
$name = $request['name'];
$permission = new Permission();
$permission->name = $name;
$roles = $request['roles'];
$permission->save();
if (!empty($request['roles'])) { //If one or more role is selected
foreach ($roles as $role) {
$r = Role::where('id', '=', $role)->firstOrFail(); //Match input role to db record
$permission = Permission::where('name', '=', $name)->first(); //Match input //permission to db record
$r->givePermissionTo($permission);
}
}
return redirect()->route('permissions.index')
->with('flash_message',
'Permission'. $permission->name.' added!');
}
}
Route
Route::group(['middleware' => 'web', 'prefix' => 'permissions', 'namespace' => 'Modules\User\Http\Controllers'], function()
{
Route::get('/', '[email protected]');
Route::get('/create', '[email protected]');
Route::post('/', '[email protected]');
Route::delete('/', ["as" => "permissions.destroy", "uses" => "[email protected]"]);
});
Danke, ich es –
bekam habe ich die dockerized Laravel App und irgendwie auf AWS dies nicht funktioniert:
Dann wird Ihr
$this->validate(...)
Code ändern. Ich bin auf 5.4.36. Ich habe diesen Fehler beim Erstellen des Docker-Images in AWS (auf alpinem Linux) festgestellt. Ich habe alles gemacht - 'composer update',' composer dump-autoload' und habe die Version mit 'php artisan --version' verifiziert. Ich bin auf Laravel 5.4.36 in AWS ECS Container. Ich bekomme "BadMethodCallException Methode [Validator] existiert nicht." – AndyBitte posten Sie eine neue Fragen mit Ihrem Problem @Andy –