Если вы хотите, вы можете просто сделать переадресацию со своего промежуточного программного обеспечения:
if (something in my database have status == 0) {
return redirect()->route('route_a_name');
} else {
return redirect()->route('route_b_name');
}
Просто убедитесь, что вы назовете свои маршруты в своем routes/web.php
.
Пример:
Route::get('/route_a', 'YourController@RouteA')->name('route_a_name');
Редактирование:
На основании дополнительной информации, которую вы предоставили, промежуточное программное обеспечение для того, что вы пытаетесь достичь, является скорее сверху. Вместо этого вы можете просто использовать один маршрут и передать параметр статуса. Для получения дополнительной информации о параметрах маршрутизации см. https://laravel.com/docs/5.6/routing#route-parameters .
Пример:
Route::get('/your_route/{status}', 'YourController@ControllerAction');
Затем в контроллере обработайте логику, основанную на статусе:
function ControllerAction(Request $request, $status) {
if ($status == 0) {
//Show view for A
} else {
//Show view for B
}
}
Вы можете создать функцию, которая, согласно тексту <span>
, находит соответствующий элемент и щелкает по его родительскому элементу. После срабатывания waitForKeyElements
вызовите эту функцию с помощью Male
и Mr.
:
const findAndClickParent = text => [...document.querySelectorAll('label > span')]
.find(e => e.textContent === text)
.parentElement
.click();
waitForKeyElements (
"label",
() => {
findAndClickParent('Male');
findAndClickParent('Mr.');
}
);
. Если вы хотите повысить эффективность, вы можете создать объект из этих совпадающих элементов при срабатывании обратного вызова (при условии, что ни один из них, который вас волнует), и каждый раз обращайтесь к соответствующему свойству, например:
waitForKeyElements (
"label",
() => {
const parentsByTextContent = Array.prototype.reduce.call(
document.querySelectorAll('label > span'),
(a, e) => {
a[e.textContent] = e.parentElement;
return a;
},
{}
);
parentsByTextContent['Male'].click();
parentsByTextContent['Mr.'].click();
}
);