Мне нужно сначала предупредить об этом ответе на следующее: я не тестировал этот код; во-вторых, у меня никогда не было требования использовать это.
С учетом сказанного, есть статическое свойство доступно на красноречивые модели:
/**
* Indicates whether attributes are snake cased on arrays.
*
* @var bool
*/
public static $snakeAttributes = true;
Переключая это ложь, вы выключаете змеиную оболочку имен атрибутов и имен отношений на модели. Это должно иметь желаемый результат, который вы ищете.
Если вы заинтересованы в модели source code, у модели есть метод cacheMutatedAttributes
, который выполняет регулярное выражение по атрибутам, чтобы проверить, присутствуют ли какие-либо мутации, если они соответствуют, выполняется через следующий фрагмент.
if (static::$snakeAttributes) {
$match = Str::snake($match);
}
Поскольку это статическое свойство, вы можете глобально изменить это для всех моделей, изменяя статическое значение на самой модели. В противном случае вы можете внести это изменение на основе каждой модели, перезаписав статичность в каждой модели, в которой вы нуждаетесь. Для того, чтобы изменить глобально, вы можете добавить что-то вроде этого, чтобы ваш AppServiceProvider
:
public function boot()
{
\Illuminate\Database\Eloquent\Model::$snakeAttributes = false;
}
Ик ... почему вы хотите его :) – Mfoo