Я создал текстовую область с текстовым редактором Wysywig на нем. Пользователь щелкает текстовую область и начинает печатать как любой текстовый редактор. Затем они сохранят форму с этим текстом, а затем данные будут сохранены в базе данных с $data['description'] = json_encode($description_data);
это сохранит закодированную строку в базе данных.
Вот что я получу в столбце БД:
""<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n""
Причина в том, что это в этом формате, потому что он является частью некоторого вывода json как часть API, и приложение нуждается в преобразовании текста в этом формате.
Моя главная проблема заключается в том, что когда администратор идет редактировать эти данные в текстовой области, текст добавляется обратно как данные выше, что ожидается, как вы можете видеть ниже:
Этот текст не должен иметь ничего общего с содержимым и быть обычным html в текстовой области. Это возможно?
Вот функция контроллера ниже:
public function store(Offer $offer)
{
$offerId = $offer['id'];
$data = Input::except('image','featured');
//$featured_data = array( 'offer_date' => $data['offer_date'], 'starttime' => $data['offer_start_time'], 'endtime' => $data['offer_end_time'] );
$description_data = $data['description'];
$validation = Validator::make($data, Offer::$rules);
if ($validation->fails()) {
return redirect('offers')->with('message', $validation->errors());
} else {
$file = Input::file('image');
$filename = date('Y-m-d-H')."-".$file->getClientOriginalName();
$path = storage_path('app/uploads/' . $filename);
Image::make($file->getRealPath())
->resize(600, 600)
->save($path);
$data['image'] = 'storage/app/uploads/'.$filename;
$data['description'] = json_encode($description_data);
Offer::create( $data );
return redirect('offers')->with('message', 'Offer added!');
}
}
И в форме я получил это:
<div style="clear: both;" class="form-group">
{!! Form::label('description', 'Offer Description:') !!}
{!! Form::textarea('description', null, array('id'=>'editor1','class' => 'ckeditor form-control')) !!}
</div>
Надеюсь, это может быть достигнуто.
Просто используйте json_decode при выводе. это делает противоположность json_encode.
Это строка в кодировке json, хотя она не действительна исключительно.
Попробуй это:
$var_str = '<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n';
$str_in = '{"s": "'. $var_str . '"}';
$sArr = json_decode($str_in, true);
$cleanString = $sArr['s'];
или эквивалент в JavaScript.
PHP скрипка здесь: http://sandbox.onlinephpfunctions.com/code/625c6ffd9d31215f8f73f6e02b5328e0fdf807e7