FatalErrorException в строке 265 Inflector.php для метода save () модели [duplicate]

Обновление: CSS-модули

Эта практика теперь известна как «CSS-модули» и становится все более популярной благодаря популярности Webpack. Концепция состоит в том, чтобы преобразовать (хеш) CSS-селекторов в уникальные имена классов, чтобы убедиться, что между модулями не существует столкновений между стилями.

Модуль css-loader для Webpack имеет modules, который позволяет эту функцию. Он обычно используется с React, где вы назначаете имена классов в своей разметке через объект JS, доступный при импорте файла CSS, например

import styles from './style.css

. Если этот файл CSS имеет селектор, например. .sidebar, он применяется в разметке через

className={styles.sidebar} // JSX

. Webpack будет хешировать имя класса и селектор сопряжения для обеспечения уникальности.

Оригинальный ответ ↓

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

Взгляните на разницу между развитием и production версии jQuery. Это пример результата минимизации и сжатия.

9
задан Abdul Qadir 22 January 2018 в 13:35
поделиться

4 ответа

Это проблема с версией PHP, обновление до PHP 7.0 и doctrine / inflector будет работать должным образом, потому что doctrine / inflector 1.20 и выше требуют PHP 7.

Но если вы хотите остаться на текущей версии PHP, вы можете понизить версию doctrine / inflector, выполнив следующие команды:

  1. Удалить файл composer.lock rm -f Composer.lock
  2. Удалить поставщика rm -R -f vendor
  3. composer install
  4. Установите доктрину / инфлектор в соответствии с вашей версией php composer require doctrine/inflector:1.1.0

doctrine / inflector: 1.1.0 поддерживает PHP 5.6 & amp; выше. Если у вас есть другая версия php, вы можете обратиться к этой ссылке

20
ответ дан Yogesh Nogia 15 August 2018 в 18:20
поделиться

Я работаю над:

  • Laravel 5.1
  • PHP 5.6.36

Имя моей таблицы выглядит так: «test_meetings»

Я решил ошибку, задав в testMeeting.php модель имя таблицы:

protected $table = 'test_meetings';
1
ответ дан Alessandro 15 August 2018 в 18:20
поделиться

Если это кому-то поможет. У меня была аналогичная проблема. Моя доктрина / инфлектор ожидала php> = 7 по какой-то причине (вот что было в композиторе.json из доктрины / инфлектора). И это несмотря на то, что я выполнил инструкции по установке laravel 5.4.

Я запустил rm -f Composer.lock и rm -R -f vendor, а затем выполнил composer install после vagrant ssh к домашней виртуальной машине, которая использовала php 5.6.8 (изначально я запустил композитор с моего терминала MacBook, который использовал php 7)

Это позволило устранить проблемы.

1
ответ дан cw24 15 August 2018 в 18:20
поделиться

Это действительно очевидно, когда вы ищете это имя файла, а затем начинаете сравнивать версии пакетов.

Вам требуется laravelcollective/html в любой версии, поэтому на данный момент последней версией является 5.5.x. Этот пакет, в свою очередь, требует "doctrine/inflector": "~1.1",, поэтому любая версия ниже 2.0, которая в настоящее время 1.3.0, и требует PHP 7.0 или выше.

Если вы посмотрите на источник последнего inflector.php , вы увидите, что тип возвращаемого значения указан в строке 265, который поддерживается только в PHP 7.0 и выше.

Вы используете PHP 5.6.24, поэтому этот код не будет работать в вашей системе.

Простой способ исправить вашу ошибку - использовать версию laravelcollective/html, соответствующую вашей версии Laravel. Вероятно, это будет 5.2.*.

4
ответ дан Jerodev 15 August 2018 в 18:20
поделиться
  • 1
    Спасибо, что работал с PHP версии 7.1.1 – Abdul Qadir 22 January 2018 в 13:59
  • 2
    Подумайте о том, чтобы отнести этот ответ как решение, если это вам помогло, поэтому другие пользователи могут это найти. – Jerodev 22 January 2018 в 14:00
  • 3
    Система не позволяет мне отметить это :( – Abdul Qadir 22 January 2018 в 15:04
  • 4
    @Jerodev с первого взгляда, похоже, такая же проблема, как и моя, если я не удалил laravelcollective / html, и ошибка сохранилась, чтобы взглянуть на мой composer.json? – Tiago_nes 25 January 2018 в 12:53
  • 5
    Я думаю, что получил его, когда обновляюсь. Я думаю, что композитор установил symfony / polyfill-php70, который, как я полагаю, использует php7.0 – Tiago_nes 25 January 2018 в 15:16
Другие вопросы по тегам:

Похожие вопросы: