Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Бегом на https://ru.vuejs.org/v2/guide/ - большая часть вопросов отпадет.
Только есть неудобство - оно не индексируется поисковиками.
Вроде с февраля гугл адекватно все индексирует.
Пишите на том, что знаете лучше. Если задача освоить новый инструмент - Vue.js даст преимущество в построении сложных интерактивных, реактивных форм, приложений-одностраничников. Заменить jquery не выйдет, т.к без него не будет работать bootstrap, во всяком случае его js часть. Впрочем, никто не запрещает использовать их вместе. Начинать стоит с документации, как и всегда. От себя советую посмотреть уроки на laracasts.com
Как по мне, веб разработка под windows это боль. Все что в той же Ubuntu можно поставить парой команд в windows превращается в пеший эротический квест. Как вариант можно использовать homestead
Ставить как обычно через apt install или что вы там используете.
Посмотрел гайд, все там расписано
Скорее всего в системе не установлены соответствующие инструменты, такие как jpegoptim, pngquant, optipng, gifsicle. Установи 'log_optimizer_activity' => true и посмотри что пишет оптимайзер.
В laravel 5.4 роутинг файлы в папке /routes. https://laravel.com/docs/5.4/routing
Скорее всего вы забыли поставить в config/app.php ’timezone’ ⇒ ’Europe/Moscow’, еще подозрение на ->format('') — по идее это вообще не должно работать. В каком формате вы храните время? Почитайте документацию на Carbon и выбирайте подходящий метод, ссылку вам выше давали.
- Можно ли создать мутатор(геттер) глобальным для определенных таблиц?
Можно, в Laravel можно все что можно в PHP. Но я бы не советовал. Смысл в том, чтобы сделать из модели единственную точку работы с данными. Чтобы не бегать по представлениям, хелперам, контроллерам, в поисках «откуда это взялось», и запись $model->created_utc означала ровно то, что написано.
По-порядку:
В базе храним даты сервера. Это наша точка отсчета. Естественно их не трогаем. Т.е все события происходящие на сайте пишутся по времени сервера. Временную зону ставите какую вам удобно.
Если нужно отобразить поправку на локальное время пользователя, делаем мутатор. Не люблю это слово, т.к не понятно что конкретно оно делает, предпочитаю более привычные геттер (мутатор который изменяет данные при выводе) и сеттер (мутатор, который изменяет данные при вводе). В вашем случае делаем геттер для полей created_at и updated_at, но, т.к оригинальные created_at и updated_at могут пригодиться, сделаем это через псевдополя, пусть будут created_utc и updated_utc.
Сначала добавим в модель наши псевдополя
protected $appends = [
'created_utc',
'updated_utc',
];
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.
Теперь вот про это:
Вам не кажется что
- в базе хранить сырые значения
- принимаем дату/время от пользователя — тут же конвертируем и его зоны в UTC
- Мутаторы неявны, про них постоянно забываешь и получается, что где-то дата не сконвертирована, а где-то сконвертирована дважды. Для вывода можно написать пару глобальных функций и использовать в шаблонах
Вы просто их неправильно готовите
- Для вывода можно написать пару глобальных функций и использовать в шаблонах
$('#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); } }); })
Покажите что в контроллере, для success должно быть что-то вроде
public function postCreate(Create $request) {
//действия в котроллере
return response()->json([
'message' => 'Ok',
]);
}
Для error — если вы используете стандартный подход в Laravel с Requests, при правильном ajax-запросе должны получить Status Code:422 и json с ошибками
Если вам нужно именно генерация ссылок со слешем — самое простое написать свой хелпер
function trailingSlashUrl($url) {
return url($url).'/';
}
Использовать по необходимости вместо хелпера url(). Аналогично с хелпером action().
В Nginx ессно должно быть прописано что-то вроде rewrite ^(.*[^/])$ $1/ permanent;
- Вопрос не в том, что делать с веб-сервером, с ним ничего делать не надо. Updated: Не надо ничего делать потому, что если прописать это на уровне веб-сервера, то все адреса без слеша получат редирект на адреса со слешем. Поисковик сойдет с ума — весь сайт состоит из редиректов
Именно чтобы не было путаницы, в ларавел все адреса без слешей. И я вам советую не заморачиваться со слешами и псевдостатикой, сейчас не 2008 год)
У меня без ошибок, вообще без проблем обновился.
Обновился сегодня, в Ubuntu 16.04 можно установить через 'sudo apt-get install composer'.
А как ты пробуешь?
if ($image = Input::file('photo'))
{
$filename = str_random(6) . '.' . $image->getClientOriginalExtension();
$path = public_path('/uploads/' . $filename);
$resizedImage = Image::make($image->getRealPath())->resize(200, 200)->save($path);
Storage::put('uploads/' . $filename, $resizedImage);
}
Покажи рабочий код