2012-11-05 13 views
3

Laravel을 사용하여 데이터베이스에 POST하려고하는 사용 가능 일정이 있습니다. 난 내 POST를 덤프 때 나는이 얻을 .. 이유는 데이터베이스 내 POST에POST에서이 html 오류가 렌더링되는 이유는 무엇입니까?

string(1440) "s:1430:"2012-11-06;;1;;888,2012-11-07;;1;;888,2012-11-08;; 
1;;888,2012-11-09;;1;;888,2012-11-10;;1;;888,2012-11-11;;1;;888,2012-11-12;; 
1;;888,2012-11 13;;1;;888,2012-11-14;;1;;888,2012-11-15;;1;;888,2012-11-16;;1;; 
888,2012-11-17;;1;;888,2012-11-18;;1;;888,2012-11-19;;1;;888,2012-11-20;;1;;888, 
2012-11-21;;1;;888,2012-11-22;;1;;888,2012-11-23;;1;;888,2012-11-24;;1;;888, 
2012-11-25;;1;;888,2012-11-26;;1;;888,2012-11-27;;1;;888,2012-11-28;;2;;0,array(1) 
{["availability"]=>string(973) "s:964:"2012-11-05;;1;;888,2012-11-29;;1;; 
888,2012-11-30;;1;;888,array(1) {["availability"]=>string(12) "availability"} 

<html><h2>Unhandled Exception</h2><h3>Message:</h3><pre>Error rendering view: 
[layouts.admin] Undefined variable: title</pre><h3>Location:</h3>    
<pre>/Users/corymjacik/Sites/shipwatch_v2.1/storage/views/33f72cb6519c7f146dc8d6af4b948300 on line 5</pre><h3>Stack Trace:</h3> 
<pre>#0 /Users/corymjacik/Sites/shipwatch_v2.1/laravel/laravel.php(40): 
Laravel\Error::native(8";"} 
<html><h2>Unhandled Exception</h2><h3>Message:</h3> 
<pre>Error rendering view: [layouts.admin]Undefined variable: title</pre> 
<h3>Location:</h3> 
       <pre>/Users/corymjacik/Sites/shipwatch_v2.1/storage/views/33f72cb6519c7f146dc8d6af4b948300 
on line 5</pre><h3>Stack Trace:</h3> <pre>#0 /Users/corymjacik/Sites/shipwatch_v2.1/laravel/laravel.php(40): 
Laravel\Error::native(8";" 
이 오류의 원인이 될 수있는 어떤

등을 포함하고 있습니다? 아래 내 컨트롤러 코드입니다. 모든 것은 잘 작동합니다. 그 문자열을 데이터베이스에 게시 할 수 있는데 (serialize()를 사용하여 배열에서 문자열로 바뀜) 데이터베이스에서 가져올 수 있으며 프론트 엔드에 잘 표시됩니다. 오류는 차이를 만드는 것처럼 보이지 않지만, 나는 약간 잘못된 것을하고있는 것처럼 느껴집니다.

public function post_availability_save() 
    { 
$availability = serialize(Input::get('dop_booking_calendar')); 
//var_dump($availability);die; 

$id = Auth::user()->id; 

Availability::update($id, array(
    'user_id' => Auth::user()->id, 
    'availability' => $availability 
)); 
return Redirect::to('admin'); 
} 

    public function get_availability_load() 
    { 
$id = Auth::user()->id; 

$availability = array(
    'availability' => Availability::find($id)->availability 
); 

var_dump($availability); 

} 

편집 좀 더 함께 장난 , 또한 내 HTML 레이아웃의 시작 ... 사람이 원인이 무엇인지를 덤핑있다? 조금 더 깊이 파헤겠습니다. 11/13/12

//*This is what ends up in my database (Type:TEXT) // 
,2012-11-13;;1;;1,2012-11-14;;1;;1,2012-11-15;;1;;1,2012-11-16;;1;;1,2012-11- 
17;;1;;1,2012-11-18;;1;;1,2012-11-19;;1;;1,2012-11-20;;1;;1,2012-11-21;;1;;1,2012 
-11-22;;1;;1,2012-11-23;;1;;1,2012-11-24;;1;;1,2012-11-25;;1;;1,2012-11-26;;1;;1, 
2012-11-27;;1;;1,2012-11-28;;1;;1,Array 
(
    [availability] => 1 
) 
<html><h2>Unhandled Exception</h2> 
<h3>Message:</h3> 
<pre>Error rendering view: [layouts.admin] Undefined variable: title</pre> 
<h3>Location:</h3> 
      <pre>/Users/cory/Sites/shipwatchpoint_v2.1/storage/views/e2b30637bfaa9d210e31baf35870d230 on line 5</pre> 
<h3>Stack Trace:</h3> 
<pre>#0 /Users/corymjacik/Sites/shipwatchpoint_v2.1/laravel/laravel.php(40): Laravel\Error::native(8 

// *layouts.admin.blade.php // 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>{{ $title }}</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <!-- CSS --> 
    {{ HTML::style('css/bootstrap.css') }} 
    {{ HTML::style('css/jquery.dop.BookingCalendar.css') }} 
    {{ HTML::style('css/app.css') }} 

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> 
    <!--[if lt IE 9]> 
     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 

    <!-- Fav and touch icons --> 
    <link rel="shortcut icon" href="/img/ico/favicon.ico"> 

    </head> 
    <body> 

    <div class="container-fluid"> 
     {{ $content }} 
    </div> 

    <!-- JS --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    {{ HTML::script('http://code.jquery.com/jquery-1.8.2.min.js') }} 
    {{ HTML::script('js/bootstrap.js') }} 
    {{ HTML::script('js/app.js') }} 
    {{ HTML::script('js/jquery.dop.BookingCalendar.js') }} 

    </body> 
</html> 

//*admin controller (public restful is set to true)// 
public function get_index() 
    { 
    $id = Auth::user()->id; 
    $unit = array(
     'unit' => Unit::find($id), 
     'unit_admin' => Unit::find($id)->user, 
     //'availability' => Availability::all() added this and it still showed errors 
    ); 

    //var_dump($unit);die; 

    $this->layout->title = 'Admin Profile'; 
    $this->layout->nest('content', 'admin.index', $unit); 
    } 

public function post_availability_save() 
    { 
    //$availability = serialize(Input::get('dop_booking_calendar')); 
    $availability = Input::get('dop_booking_calendar'); 
    //var_dump($availability);die; 

    $id = Auth::user()->id; 

    Availability::update($id, array(
     'user_id' => Auth::user()->id, 
     'availability' => $availability 
    )); 
    return Redirect::to('admin'); 
    } 

    public function get_availability_load() 
    { 
    $id = Auth::user()->id; 

    $availability = array(
     'availability' => Availability::find($id)->availability 
    ); 

    var_dump($availability); 

    } 
+1

가장 최근의 것을 사용하고 있습니다. 3.2.11 – coryj

+1

정의되지 않은 변수가 모두 정의되어 있습니다. 나는 그것이 컨트롤러 문제일지도 모른다고 생각하고 있는데, 나는 'admin'컨트롤러로 리다이렉트해야만했다. 그러나 나는 그것을 시도했지만 여전히 작동하지 않는다. 또한, 프론트 엔드에서 사용 가능 여부를 확인하기 위해, 어떻게해야 하는지를 알아낼 수있는 유일한 방법은 내 요청을 var_dump하는 것이 었습니다. 이 방법이 올바른지 확실하지 않은 경우 ... – coryj

+0

가장 최근 _what_? – Daedalus

답변

0

괜찮습니다. 그래서, 마침내 그것을 알아 냈습니다. 내가 선택한 결과를 var_dumping했기 때문에 오류가 게시물에 전송되었습니다. 나는 'die'와 'json_encode'로 고쳤다. 도와 주신 모든 분들께 감사드립니다!

2
return Redirect::to('admin');

은 $ 제목에 '제목'을 통해 보내거나 당신이 action_index()

return Redirect::to('admin')->with('title','supercooltitle');
에 그랬던 것처럼 레이아웃에서 설정 편집

또는

return Redirect::to('admin')->with_title('supercooltitle');

그런 다음 뷰는 $ title을 잡고 정의되지 않은 참조를 표시하지 않을 수 있습니다.

다른 옵션은 색인을 사용한 것과 비슷한 레이아웃으로 설정합니다.

+1

안녕하세요, 답변 주셔서 감사합니다 ...이 작동하지 않았다. 비록 더 이상 그것을 축소했다 ... 처음에는 $ 가용성 = serialize (Input :: get ('dop_booking_calendar')); 심지어는 $ availability = Input :: get ('dop_booking_calendar'); .. 오류가 이미 해당 데이터에 덤핑되고 있습니다. 오류가 이미 게시 된 후에 발생하기 때문에 리디렉션이 작동하지 않습니다. – coryj

+0

나는 두려워하는 것을 이해하지 못한다. 너 dd ($ 가용성); 입력에 오류가 있습니까? 아니면 $ title 변수가 없다는 예외를 던지고 있습니까? 원래 문제가 아니 었나요? 나는 여기서 도와주고 싶다. – digma

+1

오류는 POST 데이터에 저장됩니다. 그래서 내가 양식에서 데이터를 가져 와서 데이터베이스에 제출하면 오류가 있다는 유일한 징후 일뿐입니다. 그래서 $ _POST [ 'dopbookingcalendar']는 에러를 반환합니다. 거대한 자바 스크립트 파일이이 변수들을 모두 설정하고 있습니다. 그걸로 뭔가가 있어야합니다. 그래도 문제를 해결할 시간이 없었습니다. – coryj