Если тут без ошибок то идем дальше
https://github.com/spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
php artisan migrate
php artisan make:model -m Models/Users/User
php artisan make:request Users/UserRequest
php artisan make:controller -r Web/Users/UserController
php artisan make:controller --resource Api/Users/UserController
php artisan make:policy --model=User Users/UserPolice
Политики надо регистрировать иначе работать не будут
Скинуть в setions/users
webController
public function index()
{
// $this->authorize('view', User::class);
return view('sections.users.main', [
'roles' => Role::query()->where('id', '>', 1)->get()
]);
}
apiContoller
<?php
namespace App\Http\Controllers\Api\Users;
use App\Http\Requests\Users\UserRequest;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function index(Request $request)
{
// $this->authorize('view', User::class);
$search = json_decode($request->input('search'), true);
$orderColumn = $request->input('order_column');
$orderDesc = $request->input('order_desc');
$query = User::query()
->orderBy($orderColumn, $orderDesc ? 'desc' : 'asc');
// Поиск
if (!empty($search)) {
foreach ($search as $key => $value) {
if ($value === '') continue;
if (in_array($key, [
'users.login'
])) {
$query->where($key, 'ILIKE', "%$value%");
} else {
$query->where($key, $value);
}
}
}
return $query->paginate(20);
}
public function store(UserRequest $request)
{
// $this->authorize('view', User::class);
$input = $request->all();
$input['password'] = Hash::make($input['password_new']);
$user = new User($input);
$user->save();
return $user;
}
public function show($id)
{
$user = User::findOrFail($id);
return $user;
}
public function update(UserRequest $request, $id)
{
// $this->authorize('view', User::class);
$input = $request->all();
if (isset($input['password_new']))
$input['password'] = Hash::make($input['password_new']);
$user = User::findOrFail($id);
$user->update($input);
return $user;
}
public function destroy($id)
{
//
}
}
Настраиваем роуты
/app/Providers/RouteServiceProvider.php
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
cat << EOT >> routes/api.php
<?php
//Route::group(['middleware' => 'auth', 'namespace' => 'Api'], function()
Route::group(['namespace' => 'Api'], function () {
Route::resource('/users', 'Users\UserController');
});
EOT
cat << EOT >> routes/web.php
Route::group(['namespace' => 'Web'], function () {
Route::resource('users', 'Users\UserController');
});
EOT