【发布时间】:2015-10-22 06:14:21
【问题描述】:
我创建了一个带有所见即所得文本编辑器的文本区域。用户将单击文本区域并像任何文本编辑器一样开始输入。然后,他们将使用该文本保存表单,然后将数据使用$data['description'] = json_encode($description_data); 保存到数据库中,这会将编码字符串保存到数据库中。
以下是我将在 db 列中得到的内容:
""<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 的一部分,应用程序需要将文本转换为这种格式。
我的主要问题是,当管理员在 textarea 中编辑该数据时,文本将作为上面预期的数据添加回来,如下所示:
此文本不需要包含任何内容,并且是文本区域中的普通 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_encoding 它。当您需要通过 API 发送它时,然后在发送它之前对其进行 json_encode(或使用 response()->json())。
标签: php html json laravel wysiwyg