Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Общий раздел » Преимущества использование Vue.js в laravel приложении ? » 02.10.2017 18:42:33

Бегом на https://ru.vuejs.org/v2/guide/ - большая часть вопросов отпадет.

Только есть неудобство - оно не индексируется поисковиками.

Вроде с февраля гугл адекватно все индексирует.

#2 Re: Общий раздел » Преимущества использование Vue.js в laravel приложении ? » 01.10.2017 22:12:01

Пишите на том, что знаете лучше. Если задача освоить новый инструмент - Vue.js даст преимущество в построении сложных интерактивных, реактивных форм, приложений-одностраничников. Заменить jquery не выйдет, т.к без него не будет работать bootstrap, во всяком случае его js часть. Впрочем, никто не запрещает использовать их вместе. Начинать стоит с документации, как и всегда. От себя советую посмотреть уроки на laracasts.com

#3 Re: Laravel 5.x » Кастомная регистрация пользователей laravel 5.3 » 04.08.2017 15:24:08

Если при авторизации используется кастом поле для пароля, нужно это указать в User

PHP
  public function getAuthPassword()
  {
    return 
$this->ms_password;
  }

Скажите, а зачем у вас два поля для пароля? Какие поля вы отправляете при авторизации?

#4 Re: Laravel 5.x » Кастомная регистрация пользователей laravel 5.3 » 04.08.2017 09:37:15

Попробуйте при логауте session()->flush(), пароль создавать через bcrypt. Я обычно добавляю в модель User

PHP
  public function setPasswordAttribute($value)
  {
    
$this->attributes['password'] = bcrypt($value);
  }

#5 Re: Общий раздел » Оптимизация изображений с помощью spatie/laravel-image-optimizer » 27.07.2017 18:55:19

Как по мне, веб разработка под windows это боль. Все что в той же Ubuntu можно поставить парой команд в windows превращается в пеший эротический квест. Как вариант можно использовать homestead

#6 Re: Общий раздел » Оптимизация изображений с помощью spatie/laravel-image-optimizer » 27.07.2017 11:34:44

Ставить как обычно через apt install или что вы там используете.

Посмотрел гайд, все там расписано

#7 Re: Laravel 5.x » Кастомная аутентификация Auth::attempt » 27.07.2017 11:29:47

В модели User переопределить метод getAuthPassword()

PHP
  public function getAuthPassword()
  {
    return 
$this->pass;
  }

#8 Re: Общий раздел » Оптимизация изображений с помощью spatie/laravel-image-optimizer » 27.07.2017 11:13:33

Скорее всего в системе не установлены соответствующие инструменты, такие как jpegoptim, pngquant, optipng, gifsicle. Установи 'log_optimizer_activity' => true и посмотри что пишет оптимайзер.

#10 Re: Laravel 5.x » Актуальность обьявлений » 20.07.2016 13:04:27

Еще можно сразу ставить дату потери актуальности и показывать объявления у которых дата меньше.

#11 Re: Laravel 5.x » Изменение временной зоны » 25.06.2016 17:46:07

Скорее всего вы забыли поставить в config/app.php ’timezone’ ⇒ ’Europe/Moscow’, еще подозрение на ->format('') — по идее это вообще не должно работать. В каком формате вы храните время? Почитайте документацию на Carbon и выбирайте подходящий метод, ссылку вам выше давали.

  1. Можно ли создать мутатор(геттер) глобальным для определенных таблиц?

Можно, в Laravel можно все что можно в PHP. Но я бы не советовал. Смысл в том, чтобы сделать из модели единственную точку работы с данными. Чтобы не бегать по представлениям, хелперам, контроллерам, в поисках «откуда это взялось», и запись $model->created_utc означала ровно то, что написано.

#12 Re: Laravel 5.x » Изменение временной зоны » 24.06.2016 12:27:40

По-порядку:
В базе храним даты сервера. Это наша точка отсчета. Естественно их не трогаем. Т.е все события происходящие на сайте пишутся по времени сервера. Временную зону ставите какую вам удобно.
Если нужно отобразить поправку на локальное время пользователя, делаем мутатор. Не люблю это слово, т.к не понятно что конкретно оно делает, предпочитаю более привычные геттер (мутатор который изменяет данные при выводе) и сеттер (мутатор, который изменяет данные при вводе). В вашем случае делаем геттер для полей created_at и updated_at, но, т.к оригинальные created_at и updated_at могут пригодиться, сделаем это через псевдополя, пусть будут created_utc и updated_utc.
Сначала добавим в модель наши псевдополя

PHP
protected $appends = [
  
'created_utc',
  
'updated_utc',
];

Создадим геттеры

PHP
public function getCreatedUtcAttribute()
{
  
$timeZone = \\здесь получаем timezone пользователя.

  return \
Carbon\Carbon::createFromFormat('Y-m-d H:i:s'$this->getOriginal('created_at'))->timezone($timeZone);
}

public function 
getUpdatedUtcAttribute()
{
  
$timeZone = \\здесь получаем timezone пользователя.

  return \
Carbon\Carbon::createFromFormat('Y-m-d H:i:s'$this->getOriginal('updated_at'))->timezone($timeZone);
}

Все, теперь ваша модель имеет поля $model->created_utc и $model->updated_utc.

Теперь вот про это:
Вам не кажется что

  1. в базе хранить сырые значения

и

  1. принимаем дату/время от пользователя — тут же конвертируем и его зоны в UTC

противоречат друг другу?)

  1. Мутаторы неявны, про них постоянно забываешь и получается, что где-то дата не сконвертирована, а где-то сконвертирована дважды. Для вывода можно написать пару глобальных функций и использовать в шаблонах

Вы просто их неправильно готовите

  1. Для вывода можно написать пару глобальных функций и использовать в шаблонах

Поздравляю, это называется геттер, и место ему в модели.

#13 Re: Laravel 5.x » Отправка формы при помощи аякса » 20.06.2016 15:16:43

Нужно как-то так:

$('#img').on('change',function(){
            var form = document.forms.form;
            var formData = new FormData(form);
            $.ajax({
                url: '{{ url('api/img/upload') }}',
                type: 'post',
                data: formData,
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                },
                success: function(data){
                    console.log(data);
                },
                error: function(error){
                    console.log(error);
                }
            });
        })

#16 Re: Laravel 5.x » Отправка формы при помощи аякса » 20.06.2016 00:04:37

Покажите что в контроллере, для success должно быть что-то вроде

PHP
public function postCreate(Create $request) {
  
//действия в котроллере
  
return response()->json([
    
'message' => 'Ok',
  ]);
}

Для error — если вы используете стандартный подход в Laravel с Requests, при правильном ajax-запросе должны получить Status Code:422 и json с ошибками

#17 Re: Laravel 5.x » Слеш в конце URL » 19.06.2016 23:49:49

Если вам нужно именно генерация ссылок со слешем — самое простое написать свой хелпер

PHP
function trailingSlashUrl($url) {
  return 
url($url).'/';
}

Использовать по необходимости вместо хелпера url(). Аналогично с хелпером action().
В Nginx ессно должно быть прописано что-то вроде rewrite ^(.*[^/])$ $1/ permanent;

  1. Вопрос не в том, что делать с веб-сервером, с ним ничего делать не надо. Updated: Не надо ничего делать потому, что если прописать это на уровне веб-сервера, то все адреса без слеша получат редирект на адреса со слешем. Поисковик сойдет с ума — весь сайт состоит из редиректов О_о

Именно чтобы не было путаницы, в ларавел все адреса без слешей. И я вам советую не заморачиваться со слешами и псевдостатикой, сейчас не 2008 год)

#18 Re: Laravel 5.x » Laravel 5 + composer +php7 » 24.04.2016 19:40:02

У меня без ошибок, вообще без проблем обновился.

#19 Re: Laravel 5.x » Laravel 5 + composer +php7 » 23.04.2016 10:43:58

Обновился сегодня, в Ubuntu 16.04 можно установить через 'sudo apt-get install composer'.

#21 Re: Laravel 5.x » Laravel: Storage работа с изображениями » 20.08.2015 19:27:31

Ну так удали вторую, в чем проблема? Проверить не могу, но код вроде

Storage::put('uploads/' . $filename,  Image::make($image->getRealPath())->resize(200, 200));

работать не будет (но ты можешь попробовать, с уверенностью сказать не могу).

#22 Re: Laravel 5.x » Laravel: Storage работа с изображениями » 20.08.2015 17:59:54

попробуй так:

PHP
if ($image Input::file('photo'))
{
    
$filename  str_random(6) . '.' $image->getClientOriginalExtension();
    
$path public_path('/uploads/' $filename);
    
$resizedImage Image::make($image->getRealPath())->resize(200200)->save($path);
    
Storage::put('uploads/' $filename,  $resizedImage);
}

#24 Re: Laravel 5.x » Laravel: Storage работа с изображениями » 20.08.2015 10:52:17

Просто с файловой системой, без Storage код работает?

#25 Re: Laravel 5.x » Как вы создаете админку? » 20.08.2015 10:50:10

А руками нет? Что сложного? 1 раз написал под свои нужды, и пользуешься в свое удовольствие.

Подвал раздела