Я начал работать над своим первым веб-приложением Laravel 6 около 2 месяцев назад.
Я слишком долго застрял в этом, и я ищу несколько советов о том, под каким углом я должен смотретьпри этой проблеме:
Проблема В моем виде лезвия есть форма с текстовой областью для пользовательского ввода, 3 переключателями / флажками, кнопкой и отключенным полем текстовой области для вывода (простозаполнитель для вывода на данный момент).
Так выглядит форма
Пользователь может вставить список доменов в поле ввода textarea и зависит откакие переключатели / флажки отмечены, запрос (который теперь является массивом благодаря preg_split
в контроллере) должен пройти через всю проверенную логику переключателей / флажков. Я смотрю на эти переключатели так, будто они являются фильтрами.
Вопрос По сути, я нахожусь в бесконечном поиске подсказок о том, как мне подходить к определению этих переключателей. Я посмотрел на проверку запроса формы, но это, кажется, не нужно для решения этой проблемы (я знаю, что буду использовать его позже, чтобы закончить и не оставлять пустых мест в полях пользовательского ввода).
Теперь у меня есть метод класса (ListsCleaner.php) (фильтры), который вызывается в контроллере для ответа на запрос из представления, и я думаю, что я двигаюсь в правильном направлении, я просто не знаю, как начатьзапись каждой логики коммутатора (switch1, switch2, switch3) там:
class ListsCleaner
{
protected $domains;
function __construct($domains)
{
$this->domains = $domains;
}
public function filters()
{
// Should I write all 3 switches/checkboxes logic here?
}
}
My controller.php
public function filter(Request $request)
{
$domains = preg_split('/\\s/', $request->input('domains'));
dd ($domains);
return new ListsCleaner($domains);
}
dd ($ domains);
array:5 [▼
0 => "website1.com"
1 => ""
2 => "website2.com"
3 => ""
4 => "website3.com"
]
Мой просмотр blade.php
<form class="col s12 center-align" method="get" enctype="multipart/form-data" action="{{ route('filters') }}">
{{csrf_field()}}
<div class="row">
<!-- Switches -->
<div class="switch col 4 valign-wrapper">
<label>
<input checked type="checkbox" name="Switch1" value="true">
<span class="lever"></span>
gTLDs
</label>
</div>
<div class="switch col 4 valign-wrapper">
<label>
<input checked type="checkbox" name="Switch2" value="true">
<span class="lever"></span>
Competitors
</label>
</div>
<div class="switch col 4 valign-wrapper">
<label>
<input checked="checked" type="checkbox" name="Switch3" value="true">
<span class="lever"></span>
Blogspam Sites
</label>
</div>
</div>
<div class="row">
<div class="col s6 input-field">
<textarea name="domains" id="batch_requests" class="materialize-textarea" rows="5" oninput="changedValue()"></textarea>
<label for="batch_requests">Enter URLs separated by space or line break.</label>
</div>
<div class="col s6 input-field">
<textarea disabled name="domains_cleaned" class="materialize-textarea" rows="5" oninput="changedValue()"></textarea>
</div>
</div>
<div class="row">
<div class="col s6 left-align">
<button type="submit" class="btn btn-large waves-effect waves-light white-text">Clean Websites</button>
</div>
</div>
</form>
И, наконец, мой полный класс ListsCleaner
namespace App\Lists;
class ListsCleaner
{
protected $domains;
function __construct($domains)
{
$this->domains = $domains;
}
public function filters()
{
// Should I write all 3 switches/checkboxes logic here?
}
}