Информация о пользователе

Ник: Den
Страна: РФ
Статус: Активен
С нами с:
23.11.2017 18:56
Лайки
Лайки: +0
Лайки
0
Дизлайки
0
Я лайкал: +1
Я лайкал
+1
Я дизлайкал
0
Комментарии
Комментировал: 2
Посты
2
Комментарии
0
Ответы: 2
Посты
0
Комментарии
2
Laravel 5.5 и парсинг. Что такое краулер (crawler).
Den писал(а):
Сталкивались с этим?
В моем конкретном случае, я использую
// Upload and save image.
$image = UploadImage::upload($file, $contentType, true)->getImageName();
Метод сам проверит существование изображения. И если оно есть, то сохранит. Если абстрагироваться, то просто получаете путь к изображению и проверяете на существование, например так:
// url файла для проверки на существование
$url = "http://site.com/image.jpg";
// открываем файл для чтения
if (fopen($url, "r")) {
    echo "Файл существует";
} else {
    echo "Файл не найден";
}
Laravel 5.5 и парсинг. Что такое краулер (crawler).

Den писал(а):
Привет, классная штука! Все работает! Но оформить парсер как у вас не получилось.Почему-то при добавлении второй формы настроек(кнопки) в одну вьюшку фреймворк выдает ошибку. У вас каждая кнопка работает через ajax?Можете подробней рассказать про реализацию шаблона для этого парсера?
Привет. Шаблон простой. В цикле перебираем коллекцию парсеров, а кнопки формируем через роуты:
<div class="row margin-top-20 margin-bottom-20">
<div class="col-lg-3 text-left">
<a href="{!! route('admin.parser.settings.edit', $parser->id) !!}" class="btn btn-primary form-horizontal">
Изменить настройки</a>
</div>

<div class="col-lg-2">
<a href="{!! route('admin.parser.edit', $parser->id) !!}" class="btn btn-primary form-horizontal">
Изменить парсер</a>
</div>

<div class="col-lg-2">
<a href="{!! route('admin.parser.log', $parser->id) !!}" class="btn btn-primary form-horizontal">
Смотреть логи</a>
</div>

<div class="col-lg-2">
{!! Form::open(['route' => 'admin.parser.copy']) !!}
{!! Form::hidden('id', $parser->id) !!}
{!! Form::submit('Копировать', ['class' => 'btn btn-primary form-horizontal']) !!}
{!! Form::close() !!}
</div>

<div class="col-lg-3 text-right">
{!! Form::open([
'method' => 'DELETE',
'route' => ['admin.parser.destroy', $parser->id],
'style' => 'display: inline-block;',
'onsubmit'=>"return confirm('" . trans('interface.delete?') . "')"
]) !!}

<button type="submit" id="delete-parser-{{ $parser->id }}" class="btn btn-danger"
title="{{ trans('interface.Delete') }}">
<i class="demo-icon icon-trash"></i> Удалить парсер
</button>

{!! Form::close() !!}
</div>
</div>
Это кусок шаблона с кнопками, которые находятся в цикле. Как видите, пути будут автоматически созданы для кнопок и ссылок. Конфликтов при этом не будет.

А систему отображения вкладок я сделал через JS. В шаблоне формируются все вкладки, но отображаются настройки только для первой, по умолчанию. У остальных display:none. При клике на другую вкладку, я все настройки скрываю, а для этой вкладки отображаю. Все, в принципе, просто. Можно заморочиться и с аяксом, но особого смысла в этом нет.