首页 文章

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

提问于
浏览
0

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

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

这是错误的行

<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(); 添加到他的删除用户函数时,我看到他的对象和行数据......我很困惑 .

谢谢

1 回答

  • 0

    您的查询无法获取任何数据 . 追加 - > 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() .

相关问题