Laravel по-русски

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

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

#1 Re: Laravel » Создание приложения. Ошибка fopen(): php_network_getaddresses.... » 27.02.2019 23:44:41

sam

тоже столкнулся с этим..
https://gitter.im/LaravelRUS/chat/archives/2018/05/11
а решается вот так
https://laracasts.com/discuss/channels/ … -timed-out
и на карйняк может потребоваться больше места. в vagrantfile делаем вот так

   config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #     vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
     vb.memory = "2048"
     
   end

(!! кстати. установку проекта нужно делать после того как синхронизируете дирректории, как я написал ниже. иначе после успешной установке синхронизация затрет все, что было на то что валялось в папке подключаемой)
затем exit, затем vagrant reload --provision заходим обратно vagrant ssh, затем в папку с проектом аля Code , если нет, то создаем, даем права, если надо группу тоже vagrant и устанавливаем по второй ссылке снова smile у меня получилось)
с композером примерно так же до этого пришлось повозиться то группу дай, то перетащи чтоб команда заработала.. чето вилы какието под виндой поднимать это дело
п.с. а еще вам папку с проектом синхронизировать в этом же конфиге надо будет типа так же
https://toster.ru/q/175737 только они там балбесы, нужно виндовые слешы обратные использовать smile
вот так C:/sites/test/www/

#2 Re: Laravel 5.x » многократн. нажатие "Отправить" пишет в БД. кто как боролся? » 21.11.2018 12:25:57

sam

дока

DB::transaction(function () {
    DB::table('users')->update(['votes' => 1]);
    DB::table('posts')->delete();
}, 5);

ну или бегин энд

DB::beginTransaction();
DB::commit();

для моей задачи хватило обернуть в транзакцию. странно, что никто из вас не упомянул об этом smile
-------------------------------------
если нужно заблочить кнопку, то в форму дописываем

<form  ... onsubmit="return this.savebutton.disabled=true;">

и кнопка

<input type="submit" value="Сохранить" class="btn btn-success" name="savebutton"/>

и огонь smile до конца сабмита, кнопарь залочен.

#3 Re: Laravel 5.x » Как в laravel eloquent узнать экземпляр модели если get вернул 0 запис » 31.07.2018 11:11:26

sam

Projects твоя модель. в ней же можно смотреть какую таблицу юзаешь.
protected $table = 'proj'; например..
вместо ->get(); посмотри запрос ->toSql(); что возвращает
только передается в шаблон коллекция моделей, а не модель.

#5 Re: Laravel 5.x » Как получить коллекцию моделей вместо билдера? » 10.07.2018 16:48:42

sam

мож кто знает, можно ли в отношения подключить реквест? а именно, хотел бы сделать механизм поиска по результату отношений..

public function likedClocks(){
  return $this->belongsToMany(Clock::class, 'likes', 'user_id', 'clock_id');
}

#6 Re: Laravel 5.x » Как получить коллекцию моделей вместо билдера? » 06.07.2018 11:57:13

sam

Пагинация отношений, если кому надо:

    public function getOptionsPaginatedAttribute()
    {
        return $this->likedClocks()->paginate(10);
    }

а вызов вот такой!!

->options_paginated;

источник: https://stackoverrun.com/ru/q/6993429/l … 1%8F%D1%85

#7 Re: Laravel 5.x » Как получить коллекцию моделей вместо билдера? » 05.07.2018 17:12:20

sam

Решение)

в юзере отношение
        public function likedClocks(){
        return $this->belongsToMany(Clock::class, 'likes', 'user_id', 'clock_id');
    }

и далее уже юзаем
        $tt = User::all()->where('id','=', Auth::user()->id);
        foreach ($tt as $clo) {
            dd($clo->likedClocks);
        }

#8 Laravel 5.x » Как получить коллекцию моделей вместо билдера? » 03.07.2018 15:33:55

sam
Ответов: 4

Доброго времени суток!
Вывожу инфу по табличке "Часы". и на месте этого же вывода, по кнопке, хочу отображать только те часы, что были отмечены "В избрандное".
Проблема в следующем:
Если использую просто выборку часов

$clocks_list = clock::select(DB::raw('id, brand, name, type, price'));

то все ок. можно получить коллекцию моделей и юзать методы из модели..
а если вот так:

$likes = DB::table('clocks')->Join('likes', 'clocks.id', '=', 'likes.clock_id')->where('user_id', '=', Auth::user()->id);

то полуачю уже Builder и цикл с использованием методов из модели уже не работает. т.к. вместо модели там массив

{#1290 ▼
  +"id": 62
  +"brand": "NoName"
  +"name": "234"
  +"price": 234
  +"text": "234"
  +"comment": "234"
  +"type": "Мужские"
  +"status": 0
  +"created_at": "2018-06-27 10:41:31"
  +"updated_at": "2018-06-27 10:41:31"
  +"user_id": 1
  +"clock_id": 91
}

и весь код перелопачивать и все равно возникают с этим связанные проблемы.. Можно ли както получить сразу нормальную коллекцию только избранного товара текущего пользователя ?

#10 Re: Laravel 5.x » Кто знает есть ли в Москве очные курсы по laravel ? » 20.06.2018 11:33:08

sam

https://laravel.ru/forum/viewtopic.php?pid=13862#p13862 там сотня уроков в первом моем посте. все оч доступно. первая треть - проговаривается документация. уроки были платными, теперь бесплатно.

#11 Re: Laravel 5.x » Видео уроки на русском языке! » 01.06.2018 16:17:08

sam

AJAX пагинация в Laravel-5. Динамическая подгрузка контента (результатов поиска по сайту).
https://klisl.com/laravel_ajax_search.html
работает, проверил лично.
и там же другие полезности по ларавелю https://klisl.com/category/laravel
П.С. для тех, кому надо не в диве прокручивать, а саму страницу, то делаем так

    // При обновлении страницы начинать с самого верха.
    $(window).scrollTop(0);
    .......
    $(window).scroll(function () {
        if (( $(window).scrollTop() == $(document).height() - $(window).height() ) && !inProgress && count <= countPage) {
    .......

и стили не нужны

#12 Re: Laravel 5.x » Обращение к методу модели из контроллера » 31.05.2018 18:27:54

sam

как вариант, можно тупо дописать в метод контроллера нужную модель и юзать без конструктора..

    public function test(Request $request, Clock $clock, $id, false, блаблабла){
        return  $clock->method($request);
    }

#14 Laravel 5.x » Ajax фильтрация данных и вывод на странице с пагинацией » 14.05.2018 19:11:25

sam
Ответов: 2

Собственно, есть ли какие нибудь примеры? (вообще любые. от теории - как тут лучше будет жить, до кусков кода. мне все будет полезно)
Сделал submit страницу, где есть фильтры по товару и кнопарь "найти". результат вывожу в таблицу по 10 записей и могу пагинировать.
можно ли сделать фильтрацию без submit, чтоб выбрал из селект-листа значение и тут же произошел поиск. ввел цену, отщелкнул и произошел поиск. и т.д. + можно ли будет потом эти результаты пагинировать? или тут колхоз и танцы с бубном предстоят?
просто это все потом будет усложняться и как дальше этим  рулить (возможно или нет) будет, я плохо представляю. но работодатель сказал, хочу без перезагрузки юзать фильтры и видеть результат. Мои вопросы, наверно, глупые, но я проектов еще не делал. просьба понять и простить)

#15 Re: Laravel 5.x » Работа с getimagesize() на сервере » 10.05.2018 10:34:04

sam

$img_info = getimagesize(public_path() . '/' . $clock->url);

Бинго!) большое спасибо!

#16 Re: Laravel 5.x » Работа с getimagesize() на сервере » 08.05.2018 14:56:07

sam

нет, не помогло. в паблике всей папке images (и самой папке) рекурсивно дал 777
Сайт имеет домен, если вдруг это может както подсказать кому че.. там http://test.sitename.ru

#17 Laravel 5.x » Работа с getimagesize() на сервере » 08.05.2018 14:38:58

sam
Ответов: 5

Всем привет!
Хочу после загрузки изображений открывать товар на редактирование и видеть фотки в миниатюрах заданных размерах. для этого хочу их пропорционально уменьшить используя функцию для вычисления размеров getimagesize().
собственно получаю вот такую ошибку

ErrorException (E_WARNING)
getimagesize(http://test.ru/images/clock/ID_16_2018.05.08_08.24.30_5271_7.jpg): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized

вот код:

foreach ($clocks_list as $clock) {
   $img_info = getimagesize(Config::APP_URL.'/'.$clock->url);
   $res = $this->getSizeByFramework($img_info[0], $img_info[1]);
   $clock->width_img = $res['width'];
   $clock->height_img = $res['height'];
}

из документации:

Если доступ к файлу filename невозможен, getimagesize() вызовет ошибку уровня E_WARNING.

тобеш мой случай.
По какой причине он не может получить доступ к изображению? если вбиваю урлу в адресную строку, то начинается скачивание изображения.. фотки загружаются, отображаются все норм. в чем может быть дело? если закомментирую этот цикл, то выводится фотка в оригинальном размере.. на локальной машине - работает. на сервер залил, не работает...

#18 Re: Laravel 5.x » Видео уроки на русском языке! » 27.04.2018 15:34:23

sam

да, редактируется. спасибо. 5 минут - сказал образно, если быть точным, то по таймингам создания и запрета уже на редактирование было ровно 10. не 15 мин.

#20 Re: Laravel 5.x » Видео уроки на русском языке! » 27.04.2018 14:33:15

sam

Корпоративный сайт Пинк Рио из сотки видосов:
Нашел проект на гитхабе из этих видосов. но там весрия совсем низкая. поднимать его, да и другие (их тоже смотрел), не стоит, но чтоб много не набирать по видосам, можно скопировать от сюда https://github.com/ScarIetSky/Pink-Rio. так же можно погуглить на гитхабе пинк-рио и найти еще чужие проекты с так же набранным кодом, но у когото, заметил, больше, у когото меньше... но всяко помощь.

#22 Re: Laravel 5.x » Resolving данных из контейнера Laravel » 25.04.2018 17:01:14

sam

ээммм, создать в папке Requests файл ArticleRequest.php и в нем переопределить / добавить че хотите.

namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;

class ArticleRequest extends FormRequest
{
   бла бла
}

и дальше уже юзать

    public function store(ArticleRequest $request)
    {
        $result = $this->a_rep->storeArticle($request); // Метод сохранит инфу о новом создаваемом материале.
        if ($result) {
            return redirect('admin/moder')->with(Session::flash('status', 'Материал добавлен!'));
        } else {
            return back();
        }
    }

или я не правильно понял?

#23 Re: Laravel 5.x » Помогите развернуть проект на сервере. » 23.04.2018 13:49:41

sam

сам починил)
порт сменил с 80 на 3306 и

SELECT user, host FROM mysql.user

показало что хост должен быть localhost

DB_HOST=localhost

#24 Re: Laravel 5.x » Помогите развернуть проект на сервере. » 23.04.2018 13:23:38

sam

и Админ, удали лишнюю ветку) был двойной клик "отправить"

#25 Laravel 5.x » Помогите развернуть проект на сервере. » 23.04.2018 13:21:52

sam
Ответов: 2

В общем проблема распространенная, судя по гуглу, но своего найти не удается.
пишет:

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `portfolios` limit 5)

конфиг файлы:
.env

DB_CONNECTION=mysql
DB_HOST=174.17.10.55
DB_PORT=80
DB_DATABASE=test_db
DB_USERNAME=test_db
DB_PASSWORD=pswd

database.php

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

создал пользователя, права дал, если зайти

 mysql -u test_db -p test_db 

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

в чем может быть дело?

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