2017-01-31 1 views
2

Как я могу изменить свой контроллер для возврата содержимого html с сущностями в виде строки?Как предотвратить Laravel от возврата htmlEntities в данных JSON?

Я получаю HTML с HTML сущностей в одном из моих значений обратного вызова для примеров

{content: "<p><strong>PART TIME MAINTENANCE</strong>"} 

Я думаю, что решение связано с использованием этого.

HTML::decode('<h1>Hello</h1>'); 

Вот что делает мой контроллер, я не совсем понимаю, как заставить его вернуть то, что я хочу.

class JobController extends Controller{ 
public function index(){ 
    $dt = Carbon::now(); 
    return Response::json(Jobs::where("page_location","=","InternalJobPosting")->where("active","=","1")->where('start_date',"<=",$dt)->where("end_date",">=",$dt)->get(),200); 
} 
public function show($id){ 
    return Response::json(Jobs::where("id","=",$id)->first(),200); 
} 

}

ответ

0

Пробыв некоторое время я понял, я мог бы отобразить возвращаемые данные в массив и преобразование HTML сущностей с использованием html_entity_decode().

public function index(){ 
    $dt = Carbon::now(); 
    $jobs = Jobs::where("page_location","=","InternalJobPosting")->where("active","=","1")->where('start_date',"<=",$dt)->where("end_date",">=",$dt)->get() 
    ->map(function ($job) { 
     return [ 
      'id'=>$job->id, 
      'active'=>$job->active, 
      'content'=>$job->content, 
      'category'=>html_entity_decode($job->category), 
      'page_location'=>$job->page_location, 
      'page_title'=>$job->page_title, 
      'start_date'=>$job->start_date, 
      'end_date'=>$job->end_date, 
     ]; 
    }); 


    return Response::json($jobs,200); 
} 
public function show($id){ 

    $job = Jobs::where("id","=",$id)->get() 
     ->map(function ($job) { 
     return [ 
      'id'=>$job->id, 
      'active'=>$job->active, 
      'content'=>html_entity_decode($job->content), 
      'category'=>$job->category, 
      'page_location'=>$job->page_location, 
      'page_title'=>$job->page_title, 
      'start_date'=>$job->start_date, 
      'end_date'=>$job->end_date, 
     ]; 
    }); 
    return Response::json($job->first(),200); 
}