繁体   English   中英

尝试从数据表中删除行时,尝试在Laravel中获取非对象的属性

[英]Trying to get property of non-object in Laravel when attempting to delete row from datatable

我想我知道为什么会发生错误,我只是不确定如何解决它。

我有一个数据表,每行都有一个编辑和删除按钮。 该表包含正确的数据。 当我按行的删除按钮时,我将用户发送到删除确认视图。 删除视图中发生错误。

这是错误的行

<form id="deleteForm" class="form-horizontal" method="post" action="@if (isset($guestlist)){{ URL::to('entir/guests/' . $guestlist->id . '/delete') }}@endif" autocomplete="off">

我认为问题是由于$ guestlist不是一个对象。

所以在控制器中我使用以下函数来获取数据

public function getData()
{
   $guestlists = Guestlist::select(array('guestlists.id',  DB::raw('CONCAT(guestlists.first_name, " ", guestlists.last_name) AS g_name'),'guestlists.start_date', 'guestlists.end_date', 'guestlists.notes', 'guestlists.vendor'));

   return Datatables::of($guestlists)->add_column('actions', '<a href="{{{ URL::to(\'entir/guests/\' . $id . \'/edit\' ) }}}" class="iframe glyphicon glyphicon-edit"> </a>
       <a href="{{{ URL::to(\'entir/guests/\' . $id . \'/delete\' ) }}}" class="glyphicon glyphicon-remove"> </a>                            
        ')
        ->remove_column('id')            
        ->make();
}

这是调用删除视图的功能

public function getDelete($guestlist)
{       
       return View::make('site/entir/guests/delete', compact('guestlist'));

}

如果我添加dd($guestlist); 在返回之前我可以看到它不包含行数据。

例如,假设该行具有名字,姓氏和其他一些字段。 这行的id是10.当我查看dd()的输出时; 我只看到这个

字符串'10'(长度= 2)

我原本期望对象的guestlist和所有的行数据。 我不确定为什么会这样。 我正在使用laravel启动站点( https://github.com/andrewelkins/Laravel-4-Bootstrap-Starter-Site )并且我使用删除按钮复制了作者为其数据表所做的事情。 当我添加dd(); 他删除用户功能我看到他的对象和行数据......我很困惑。

谢谢

您的查询无法获取任何数据。 追加 - > get()。

Guestlist::select(array('guestlists.id',  DB::raw('CONCAT(guestlists.first_name, " ", guestlists.last_name) AS g_name'),'guestlists.start_date', 'guestlists.end_date', 'guestlists.notes', 'guestlists.vendor'))->get();

http://laravel.com/docs/5.0/queries

如果需要数组中的结果,请追加 - > get() - > toArray()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM