使用Laravel 4中的模型方法从DB检索字符串

时间:2014-08-26 09:46:57

标签: php laravel laravel-4 eloquent

我正在开发一个Laravel 4应用程序,我有一个名为幻灯片的Model。 在此Model中,我有以下方法:

public static function getFirstSlide($id){
        $slide = DB::select("SELECT link from slides WHERE slideshow_id = ?", array($id));
        $slide_url = $slide[0];
        var_dump($slide_url);
        echo $slide_url; die();
        return $slide_url;
    }

幻灯片和幻灯片之间存在one to many关系。在方法中,我返回与幻灯片放映相关的幻灯片,并获取我想在前端显示为缩略图的第一个网址。但是每次运行以下代码时都会出现此错误:

ErrorException thrown with message "Object of class stdClass could not be converted to string (View: C:\wamp\www\xyz.tld\app\views\user\book.blade.php)"

当我做var_dump我被告知数据是String所以我有点困惑。在前端我试图这样做:

<img width="100%" height="100%" src="{{ url('img/slideshows/'.Slideshow::getFirstSlide($slideshow->id)) }}"/>

2 个答案:

答案 0 :(得分:0)

因为如果你想获得链接,数组的值是stdClass的对象 $slide_url->link

答案 1 :(得分:0)

你可以试试这个:

$slide_url = $slide[0]->link;

这是因为$slide[0]返回的内容如下:

object(stdClass)[314]
public 'link' => ....

stdClass个对象。所以你应该返回字符串,如下所示:

public static function getFirstSlide($id){
    $slide = DB::select("SELECT link from slides WHERE slideshow_id = ?", array($id));
    // Probably check before returning it
    return $slide[0]->link;
}