0

我是初学者。我正在尝试修复,我想我需要帮助。

- 这是代码控制器

         if(Input::hasFile('image')){

            $dest = 'media/images/product/';

            $name = str_random(6).'_'.Input::file('image')->getClientOriginalName();

            //$resize = 
            Input::file('image')->move($dest,$name);
        }

        $loaispname = Input::get('loaispname');

        $loaisp = new Loaisp;


        $datas = $loaisp->getidloaisp($loaispname);

        $idloaisp = $datas->id;

        $item = new Sanpham;
        $item->loaisp_id = $idloaisp;
        $item->sanpham_name = Input::get('sanpham');
        $item->sanpham_img = $name;
        $item->sanpham_tieude = Input::get('tieude');
        $item->sanpham_gia = Input::get('gia');
        $item->sanpham_chitiet = Input::get('chitiet');
        $item->sanpham_vitri = Input::get('vitri');
        $item->save();

        return Redirect::to('admin/dsachsanpham')->with('thanhcong','Saved');

- 这是代码模型

    public function getidloaisp($loaispname){

        //return Loaisp::where('loaisp_name','=',$loaispname)->get();
        return DB::table('loaisp')->where('loaisp_name',$loaispname)->first();
    }

- 这是错误

ErrorException (E_UNKNOWN) Trying to get property of non-object Open: E:\xampp\htdocs\www\daunhot\app\controllers\AdminController.php

        $loaispname = Input::get('loaispname');

        $loaisp = new Loaisp;


        $datas = $loaisp->getidloaisp($loaispname);

        $idloaisp = $datas->id; // This is error

        $item = new Sanpham;
4

4 回答 4

1

当你看到这个错误时,可能有两个错误:你的查询没有返回(DB::table('loaisp')->where('loaisp_name',$loaispname)->first();),或者你得到了返回一个数组,如果你使用 ->get() 而不是 ->first() 你会得到这个错误。尝试对查询结果使用 foreach,或尝试对结果使用 dd() 函数,以便查看是否为空。如果它是空的,那是你的问题。

于 2014-11-27T11:39:26.987 回答
1

和其他人说的一样,在错误之前转储 $datas,也许在那个 'getidloaisp' 函数的 where 子句中添加 '='。不过,您应该能够使用您引用的那个,也就是说,如果您将“->get()”更改为“->first()”。

于 2014-11-28T16:25:49.183 回答
1

检查您是否在 Input::get 上获得“loaispname”:

echo "<pre>";
print_r($loaispname);
echo "</pre>";
exit;

如果您要获取发布的数据,请执行以下操作:

echo "<pre>";
print_r($datas);
echo "</pre>";
exit;
于 2015-01-03T08:40:48.310 回答
0

$datas->id使用 DB 表需要是表datas和单元格id,并且它们区分大小写,不使用Id或其他。

于 2016-02-07T11:33:55.367 回答