2012-11-05 1 views
3

J'ai un calendrier de disponibilité que j'essaye de POSTER à ma base de données en utilisant Laravel. Quand je Déverser mon post, je reçois ce ..Pourquoi cette erreur html est-elle rendue dans mon 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";" 

Ce qui pourrait être la cause de cette erreur, et pourquoi est-elle incluse dans mon POST à ​​la base de données? Voici mon code de contrôleur. Tout fonctionne très bien, comme ça. Je suis capable de publier cette chaîne dans la base de données (que j'ai transformée en chaîne à partir d'un tableau en utilisant serialize()) et je peux aussi l'obtenir de la base de données et elle s'affiche très bien sur le frontend. Les erreurs ne semblent pas faire la différence, mais j'ai juste l'impression de faire quelque chose qui ne va pas.

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 déconner avec un peu plus, il y a dumping aussi le début de ma mise en page html ... Quelqu'un sait ce qui cause cela? Je vais creuser un peu plus profond. 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

J'utilise le plus récent, 3.2.11 – coryj

+1

Les variables non définies sont toutes définies. Je pense que cela pourrait être un problème de contrôleur et je devrais rediriger vers mon contrôleur 'admin', cependant, j'ai essayé cela et ça ne fonctionne toujours pas. Aussi, afin de montrer la disponibilité dans le frontend, la seule façon que je pouvais comprendre comment faire était de var_dump ma demande get. Vous ne savez pas si cette méthode est correcte ... – coryj

+0

Le plus récent? – Daedalus

Répondre

0

D'accord. Donc, j'ai finalement compris. L'erreur a été envoyée par la poste parce que je var_dump'ing les résultats que nous sommes sélectionnés. Je l'ai réparé par 'die' et 'json_encode'. Merci à tous ceux qui ont aidé!

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

Pour envoyer sur le 'titre' dans le titre de $ ou la cassette dans la mise en page comme vous l'avez fait dans le action_index()

return Redirect::to('admin')->with('title','supercooltitle');

ou

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

Ensuite, votre vue peut saisir $ title et quitter montrant cette référence indéfinie.

D'autres options seraient le réglage sur la mise en page similaire à ce que vous avez fait avec l'index.

+1

hey, merci d'avoir répondu ... cela n'a pas fonctionné ... je l'ai réduit encore plus bas bien que ... semble être quand je reçois les données initialement avec $ availability = serialize (Input :: get ('dop_booking_calendar')); ou même $ availability = Input :: get ('dop_booking_calendar'); ..les erreurs sont déjà sauvegardées dans ces données ... la redirection ne fonctionne pas car cela se produit après que l'erreur a déjà été signalée. – coryj

+0

Je ne comprends pas j'ai peur. Quand vous dd ($ disponibilité); vous avez une erreur stockée dans l'entrée? Ou il lance l'exception indiquant qu'il n'y a pas de variable $ title? Ce n'était pas le problème original? Je voudrais aider ici. – digma

+1

l'erreur est stockée dans les données POST. Donc quand j'obtiens les données du formulaire et que je les soumets à la base de données, c'est la seule indication qu'il y a eu une erreur, sinon que tout fonctionne parfaitement bien. Donc $ _POST ['dopbookingcalendar'] retourne l'erreur. Il y a un énorme fichier javascript qui définit toutes ces variables, il doit y avoir quelque chose qui se passe, je n'ai pas encore eu le temps de résoudre ce problème – coryj

Questions connexes