Laravel по-русски

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

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

#1 Re: Веб-разработка » Warning: Trying to access array offset on value of type null » 22.02.2021 21:49:59

разобрался. Пол года назад писал этот код... не на то подумал)

#2 Веб-разработка » Warning: Trying to access array offset on value of type null » 22.02.2021 20:10:12

evg1401
Ответов: 1

Для примера, есть у меня вот такой код:

$form = $request->getPost('text');
        $file = $request->getFiles('file');
        $name = basename($file['name']);
 
        if (move_uploaded_file($file['tmp_name'], ROOT . DIRECTORY_SEPARATOR . $name . '.jpg')) {
            $result = 'загружено';
        }
 
        $news = new News();
        $rs = $news->query();
        $this->view->require('form.php', compact('form', 'file', 'result', 'rs'));

На PHP 7 ошибок нет, на 8 ругается:
Warning: Trying to access array offset on value of type null на строки с массивами $file[name] и $file[tmp_name]; И
compact(): Undefined variable $result

Подскажите как исправить. Я не думаю что уместно каждый раз проверять переменные с массивами на null, если переменная создается динамически по ходу выполнения, например $name = basename($file['name'] ?? ''); - тогда конечно ошибка пропадает. Растолкуйте этот момент пжл...

#3 Re: Веб-разработка » Обход многомерного массива в цикле » 01.02.2021 23:30:56

данных много. 1576 ячеек, в каждой по 10, в них от 5 до 10 и т.д.

#4 Веб-разработка » Обход многомерного массива в цикле » 01.02.2021 13:36:41

evg1401
Ответов: 3

Есть многомерные массив, при его обходе пришлось использовать вложенные циклы. И вот один из внутренних циклов после отработки (обход массива и запись пройденных данных в другой массив), когда снова до него доходит очередь записывает только что прочитанные данные вместе с предыдущими. Т.о. после первой отработки цикла в массив записались 3 строки данных, после второй 6 строк, при этом первые 3 из предыдущего прохода, после третьей 9 и также уже первые 6 строк - накопительный эффект от предыдущих двух отработок, и т.д. После каждой отработки он тянет за собой данные из предыдущего обращения к циклу и записывает их в конечный массив вместе с новыми данными. Наверное многие сталкивались с этим, подскажите пжл решение проблемы.

#5 Веб-разработка » В чем смысл spl_autoload_register()? » 26.12.2020 17:55:05

evg1401
Ответов: 1
function autoLoader($name) {
   require 'classes/'.$name.'.php';
  }

  spl_autoload_register('autoLoader');

Вместо этого я просто могу написать require('такой-то файл').
Если бы я мог запускать эту функцию из любого файла... А так не вижу удобств кроме лишней писанины.

#6 Re: Веб-разработка » Счетчик просмотров изображения » 19.12.2020 01:49:47

В логах количество обращений к скрипту можно посчитать, а не к конкретному изображению. Количество изображений может быть больше одного. Если подскажешь алгоритм, буду очень признателен.

#7 Веб-разработка » Счетчик просмотров изображения » 14.12.2020 19:34:46

evg1401
Ответов: 4

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

#8 Laravel 6/7/8/9/10 » как сгенерировать config/cache.php? » 03.12.2020 00:06:05

evg1401
Ответов: 1

Кто-нибудь помнит команду php artisan для создания файла кэша, а то я его удалил. Помню, что такой командой когда-то пользовался.

#10 Re: Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 15.11.2020 23:55:27

В данном случае request->all() не обойтись, мне же все равно нужно указать, что обновлять.
now() тоже пробовал и судя по ошибке результат еще более бесполезен, т.к. now() вообще ничего не подставляет и интерпретируется прямо как строка.
В общем почему мускул ругается не понятно, пока обойдусь отдельным запросом для даты. Спс

#11 Re: Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 15.11.2020 22:23:39

В запрос-то все равно надо вставлять имена полей и таблиц, так что великой разницы с моей точки зрения нет. А laravel мне нравится в первую очередь не из-за возможностей Eloquent.

#12 Re: Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 15.11.2020 20:27:28

А в чем проблема обновить через Eloquent?

Никаких проблем. У меня все запросы к бд в коде через DB, а тут ни с того, ни с другого неохота разбавлять код или все исправлять.
У меня привычка уже сложилась использовать sql в чистом виде, мне так больше нравится.

#13 Re: Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 15.11.2020 20:22:08

DB::update("UPDATE `goods` SET `volume` = $request->volume, `price` = $request->price, `updated_at` = Carbon::now() WHERE `id` = $id");
Ну, по идее такой запрос должен срабатывать? Он выдает ошибку описанную выше.

#14 Re: Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 15.11.2020 05:56:43

Я через DB::update запрос делаю. Ставлю в `updated_at` = Carbon::now(), получаю SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax. А если скопировать дату прямо из сообщения об ошибке и вставить в updated_at - то нет проблем.
Почему так - не понятно.
Вроде updated_at вообще должен автоматом обновляться.

#15 Laravel 6/7/8/9/10 » Есть ли способ вручную обновить updated_at через конструктор запросов? » 13.11.2020 05:00:39

evg1401
Ответов: 12

А то у меня что-то не обновляется автоматом. Через touch() в модели не обновляет тоже.

#16 Re: Laravel 6/7/8/9/10 » Приходит пустой Request » 19.10.2020 23:04:19

Извиняюсь за тупость , но лично я из Вашего сообщения ничего не понял. Можно поподробнее?

Он, видимо, имел в виду, что русскоязычное сообщество laravel упорото настолько что считают полученные знания о фрэймворке коммерческой тайной и ниже собственного достоинства объяснять азы по работе с ним, забывая, что когда-то сами с этого начинали!

#18 Laravel 6/7/8/9/10 » Приходит пустой Request » 14.10.2020 03:02:15

evg1401
Ответов: 5

Подскажите у кого была подобная херня. После отправки формы приходит пустой request. В dd/var_dump пусто. Вне laravel та же форма обрабатывается php нормально, в $_POST данные приходят как положено.

#19 Re: Laravel 5.x » Помогите найти ошибку в коде отправки формы » 13.02.2020 23:47:51

Ошибку нашел: @section лишний подключил, весь html перемешался, в теге form между ation не понятно откуда взялись кавычки.

#20 Laravel 5.x » Помогите найти ошибку в коде отправки формы » 06.02.2020 01:56:29

evg1401
Ответов: 2

В чем-то недочет спрятался. Код вроде бы верный, но форма с данными не отправляется, вообще при нажатии на кнопку "оправить"
ничего не происходит.
контроллер:

public function store(Request $request)
    {
        $post = new post();
        $post->title = $request->title;
        $post->short_title = Str::length($request->title) > 30 ? Str::substr($request->title, 0, 30) . '...' : $request->title;
        $post->descr = $request->descr;
        $post->author_id = rand(1,10);
        if ($request->file('img')) {
            $path = Storage::putFile('public', $request->file('img'));
            $url = Storage::url($path);
            $post->img = $url;
        }
        $post->save();
        return redirect()->route('index');
    }

файл с формой:

<form action="{{route('store')}}" method="post" enctype="multipart/form-data">
        @csrf
        <h3>Создать пост</h3>
        <div class="form-group">
            <input type="text" class="form-control" name="title">
        </div>
        <div class="form-group">
            <textarea name="descr" rows="3" class="form-control"></textarea>
        </div>
        <div class="form-group">
            <input type="file">
        </div>

        <input type="submit" value="Создать пост" class="btn-outline-success">
    </form>

web.php:

Route::get('/', 'postctr@index');
Route::get('index', 'postctr@index')->name('index');
Route::get('create', 'postctr@create')->name('create');
Route::post('/', 'postctr@store')->name('store');

вьюха ни в какой каталог не вложена

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