2012-11-05 8 views
3

У меня есть календарь доступности, который я пытаюсь отправить POST в мою базу данных с помощью Laravel. Когда я разгружать мой пост я получаю это ..Почему эта html-ошибка отображается в моем POST?

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";" 

Что может быть причина этой ошибки, и почему оно включено в моем POST к базе данных? Ниже приведен код моего контроллера. Все работает прекрасно, вот так. Я могу опубликовать эту строку в базе данных (которую я превратил в строку из массива с помощью 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); 

} 

EDIT Мессинг вокруг с ним немного больше, это также выгрузка начало моего HTML макета ... Кто-нибудь знает, что причины этого? Я буду копать немного глубже. EDIT 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_dump'ing результатов, которые мы выбираем. Я исправил его «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

эй, спасибо за ответ ... это не сработало ... еще больше, но ... похоже, когда я получаю данные изначально с помощью $ availability = serialize (Input :: get ('dop_booking_calendar')); или даже $ availability = Input :: get ('dop_booking_calendar'); .. ошибки уже сбрасываются в эти данные. Так что перенаправление не работает, потому что это происходит после того, как ошибка уже была отправлена. – coryj

+0

Я не понимаю, боюсь. Когда вы dd ($ availability); у вас есть ошибка, сохраненная во входе? Или он бросает исключение, указав, что нет переменной $ title? Это не оригинальная проблема? Я хотел бы помочь здесь. – digma

+1

ошибка сохраняется в данных POST. поэтому, когда я получаю данные из формы и отправляю ее в базу данных, это единственный признак того, что произошла ошибка, кроме того, что все работает отлично. Таким образом, $ _POST ['dopbookingcalendar'] возвращает ошибку. Существует огромный файл javascript, устанавливающий все эти переменные, должно быть что-то происходит с этим, у меня не было времени для устранения этого файла, хотя – coryj