Laravel фильтр и аутентификация - PullRequest
0 голосов
/ 05 июня 2018

У меня есть контроллер, который обрабатывает фильтры запросов, теперь, когда часть фильтра требует, чтобы пользователи вошли в систему, чтобы применить фильтр.Каков наилучший подход для этого?ценю любую помощь!Большое спасибо!

Маршрут API: Route :: get ('toyslist', 'toyslistController @ index');

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Toylist;

class ToyslistController extends Controller
{
    public function index(Request $request)
    {
        $toyslist = (new Toylist)->newQuery();

        if($request->has('type')){
            $toy_typeArray = explode(',',$request->type);
            $toyslist->whereIn('type',$toy_typeArray);
        }

        if($request->has('age')){
            $toy_ageArray = explode(',',$request->type);
            $toyslist->whereIn('age',$toy_ageArray);
        }

        if($request->has('brand')){
            $toy_brandArray = explode(',',$request->type);
            $toyslist->whereIn('brand',$toy_brandArray);
        }

        if($request->has('storage')){
            if(Auth::check()){
                $toy_storageArray = explode(',',$request->type);
                $toyslist->whereIn('storage',$toy_storageArray);
            }
        }

        return $toyslist->paginate(15);
    }
}

1 Ответ

0 голосов
/ 07 июня 2018

Пока я сделал следующее, чтобы он заработал:

Добавлен маршрут API:

Route::middleware('auth:api')->get('protectedtoyslist','toyslistController@index');
Route::get('toyslist','toyslistController@index');

Таким образом, интерфейс использует localhost/api/toyslist для фильтрации продуктов без фильтра хранения для пользователей.который не входил в систему.

Для зарегистрированных пользователей интерфейс использует localhost/api/protectedtoyslist для фильтрации продуктов, включая фильтр хранения.

Очень ценю, если у кого-то есть лучший подход к этому.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...