Ларавел 5.8 почему шифруется текст при добавлении на сайт?

есть шаблон добавления на сай т текста
@extends('default.layouts.layout')

@section('content')

<div class="col-md-9">

	<div class="">
		<h2>Добавление нового материала</h2>
    </div>
	
	@if (count($errors) > 0)
	    <div class="alert alert-danger">
	        <ul>
	            @foreach ($errors->all() as $error)
	                <li>{{ $error }}</li>
	            @endforeach
	        </ul>
	    </div>
	@endif

	@if (session('message'))
	    <div class="alert alert-success">
	        {{ session('message') }}
	    </div>
	@endif
	
	<form method="post" action="{{ route('admin_add_post_p') }}">
	<input type="hidden" name="_token" value="{{ csrf_token() }}">
	  <div class="form-group">
	    <label for="name">Заголовок</label>
	    <input type="text" class="form-control" id="name" name="name" value="{{ old('name') }}" placeholder="Заголовок">
	  </div>
	  <div class="form-group">
	    <label for="img">Изображение</label>
	    <input type="text" class="form-control" id="img" value="{{ old('img') }}" name="img" placeholder="img">
	  </div>
	  <div class="form-group">
	    <label for="text">Text</label>
	    <textarea class="form-control" id="text" name="text" rows="3">{{ old('text') }}</textarea>
	  </div>
	  <button type="submit" class="btn btn-primary">Submit</button>
	</form>
</div>	
@endsection

Есть контроллер который обрабатывает запрос
<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\User;
use Auth;

use Gate;

class AdminPostController extends Controller
{
    //show Form
    public function show() {
		return view('default.add_post',['title' => 'Новый материал']);
	}
	
	//new post
    public function create(Request $request) {
    	
    	if(Gate::denies('add-article')) {
			return redirect()->back()->with(['message'=>'У Вас нет прав']);
		}
    	
    	
    	$this->validate($request,[
    		'name'=>'required'
    	]);
    	
    	$user = Auth::user();
    	$data = $request->all();
    	
    	$res = $user->articles()->create([
            'name' => $data['name'],
            'img' => $data['img'],
            'text' => $data['text']
        ]);
        
       
		return redirect()->back()->with('message','Материал добавлен');
       
	}
}

Получается какой-то сюрриализм. Имя статьи поле name добавляется правильно, поле img т.е. рисунок не видит вообще, сам текст поле text выводится какими-то абракадабрами, в шифрованном виде.
Типа
"\u043f\u0440\u0438\u0432\u0435\u0442"
цифры выводятся правильно, только берутся в кавычки
"00000000"
При чем если я обновляю страницу: о чудо текст отображается на экране правильно, т.е. перекодируется обратно
В чем тут может быть проблема? Тут я так понимаю опять фокусы со знаменитой CSRF защитой. Или что-то другое.
5ca5952d39c85217155302.jpeg5ca594fae1396695480439.jpeg
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 3
dima9595
@dima9595
Junior PHP
Это не шифр, а кодировка. Это так русский символы записываются в бд.
Ответ написан
Комментировать
@procode
Разработчик
"\u043f\u0440\u0438\u0432\u0435\u0442"


Так выглядит юникод ))

Разберитесь с кодировками.
Ответ написан
difiso
@difiso
В параллельной вселенной я космонавт
Это не шифрование, а обычный экранированный юникод. При сохранении массивов в базу Laravel использует обычный json_encode() без доп параметров (JSON_UNESCAPED_UNICODE, в данном случае), что приводит к такому виду строки. Не переживайте, данные не потеряются.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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