【问题标题】:Why is this html error being rendered in my POST?为什么在我的 POST 中呈现此 html 错误?
【发布时间】:2012-10-25 18:29:40
【问题描述】:

我有一个可用性日历,我正在尝试使用 Laravel 将其发布到我的数据库中。当我转出我的帖子时,我得到了这个..

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

}

编辑 再搞砸一点,它也把我的html布局的开头扔掉了...... 有谁知道这是什么原因?我会深入一点。 编辑 2012 年 11 月 13 日

//*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);

  }

【问题讨论】:

  • 我使用的是最新的 3.2.11
  • 未定义的变量都已定义。我认为这可能是控制器问题,我将不得不重定向到我的“管理员”控制器,但是,我尝试了它仍然无法正常工作。此外,为了显示前端的可用性,我能弄清楚如何做到这一点的唯一方法是 var_dump 我的 get 请求。也不确定这个方法是否正确...
  • 抱歉,Laravel 最新版本
  • 您是否曾经将标题传递给布局? laravel.com/docs/views#binding-data-to-views
  • 我正在将我的标题传递给另一个控制器操作中的布局。我想我可能已经找到了解决方案,但我仍然需要对其进行更多的故障排除。我正在使用一个插件,它正在对指定的控制器进行 AJAX 调用来发布帖子,我想我可能需要返回一些东西或重定向到我的“管理员”控制器,在那里我将标题和内容传递给视图。

标签: php laravel eloquent


【解决方案1】:
return Redirect::to('admin');

在 $title 中发送“标题”或在布局中设置它,就像在 action_index() 中所做的那样

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

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

然后您的视图可以获取 $title 并退出显示未定义的引用。

其他选项将在布局上设置它,类似于您对索引所做的操作。

【讨论】:

  • 嘿,感谢您的回答...这不起作用..缩小了它甚至进一步...似乎当我最初使用 $availability = serialize(Input::get ('dop_booking_calendar'));甚至 $availability = Input::get('dop_booking_calendar'); ..错误已经被转储到该数据中..所以重定向不起作用,因为它是在错误已经发布之后发生的。
  • 我不明白,我很害怕。当你 dd($availability);你有错误存储在输入?或者它抛出异常说明没有 $title 变量?那不是原来的问题吗?我想在这里帮忙。
  • 错误存储在 POST 数据中。因此,当我从表单中获取数据并将其提交到数据库时,这是唯一表明存在错误的迹象,除了一切正常。所以 $_POST['dopbookingcalendar'] 返回错误。有一个巨大的 javascript 文件设置了所有这些变量,肯定是有什么问题,不过我还没有时间解决该文件的问题
【解决方案2】:

好的。所以,我终于想通了。错误是在帖子中发送的,因为我正在 var_dump'ing 我们被选中的结果。我用'die'和'json_encode'修复它。 感谢所有帮助过的人!

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多