Próbuję dodać warunek if, gdy zasób generuje się automatycznie.

Kiedy uruchamiam php artisan make:controller SomeController -r, chcę wygenerować następujący,

class SomeController extends Controller
{
    public function index()
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function create()
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function store(Request $request)
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function show($id)
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function edit($id)
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function update(Request $request, $id)
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
    public function destroy($id)
    {
        if (Auth::user()->can('')){
           //
        }else{
           //
        }
    }
}
0
Aushraful 20 listopad 2019, 09:52
Być może będziesz musiał zajrzeć do niestandardowych generatorów, aby zdefiniować plik pośredniczący, którego chcesz użyć do wygenerowania kontrolera ... jeśli faktycznie chcesz niestandardowego kontrolera wykonanego w ten sposób
 – 
lagbox
20 listopad 2019, 10:43

1 odpowiedź

Spróbuj użyć oprogramowania pośredniczącego, aby to zrobić, Zobacz: https://laravel.com/docs/master/middleware

namespace App\Http\Middleware;
use Auth;
use Closure;

class AuthCan {
    public function handle($request, Closure $next)
    {
        if (Auth::user()->can('')){
           //
           return $next($request);
        }else{
           //
           return response()->json(['status' => false, 'code' => 1001, 'msg' => 'Cannot ...']);
        }

    }
}

Zdefiniowano oprogramowanie pośredniczące trasy w app/Http/Kernel.php:

    protected $routeMiddleware = [
        'AuthCan' => \App\Http\Middleware\AuthCan::class,
    ...

I używaj oprogramowania pośredniego w routingu.

Route::group(['middleware' => 'AuthCan'], function(){
    Route::get('/', 'SomeController@index');
    Route::get('/{id}', 'SomeController@show');
    ...
}
2
TsaiKoga 20 listopad 2019, 10:10