Отображение содержимого из текстовых редакторов в приложении React - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь сделать простой блог с React и Laravel, и я использовал текстовый редактор для вставки содержимого блогов. Теперь, когда я пытаюсь отобразить эти блоги в своем приложении React, оно полностью отображает содержимое в виде строки, но не в виде элементов html. Вот что я сделал (код и скриншоты):

Моя форма

Laravel Blog Post Add Form

Laravel Контроллер

public function save(Request $request) {

    $validatedData = $request->validate([
        'language' => 'required',
        'body' => 'required',
    ]);

    $post = new Posts;
    $post->language = $request->input('language');
    $post->body = htmlspecialchars($request->input('body'));
    $post->save();

    return redirect('dashboard');

}

public function posts($id) {
    $posts = DB::table('posts')
    ->select('id', htmlspecialchars_decode('body'))
    ->where([['language', '=', $id]])->get();
    return response()->json($posts); 
}

А вот как выглядит мой взгляд: React View Of Blog Content

Может кто-нибудь помочь, пожалуйста, что я здесь не так делаю? Любая помощь очень ценится. Спасибо

1 Ответ

1 голос
/ 25 марта 2020

Вы не можете использовать htmlspecialchars_decode внутри выбора, вам нужно использовать его после получения данных, и лучший способ - использовать eloquent accessors :

//POSTS CLASS:

public function getBodyAttribute(){
  return htmlspecialchars_decode($this->body);
}

//----------------------

//CONTROLER CLASS:

public function posts($id) {
    $posts = Posts::select('id','body')
    ->where([['language', '=', $id]])->get();
    return response()->json($posts); 
}

PS предпочтительнее использовать единичные имена для моделей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...