为laravel controller / view创建函数以加载数据库值

时间:2017-12-27 16:33:41

标签: php sql laravel

我正在努力更新laravel刀片模板,以便将一些数据库信息插入到html表中。为了做到这一点,我不得不为这个刀片添加新数据到控制器,以及我遇到麻烦的地方。

我仍然试图通过laravel了解更多内容,因此我认为我的语法或创建此数据的方法不正确,但我现在无法将其放在手上。< / p>

在我的下面的函数中,$calls_allowed部分已经存在,并且它当前在页面上有效。我创建了函数的$contact_events部分,以及我的问题所在。

在我看来,我在有问题的html表中创建了一个foreach循环和if语句。表格加载,但即使数据库中有经销商的记录,它也是空的。

我想说 if $dealer-> id matches contact_events.dealer_num, load all records for that dealer

contact_events是表格,dealer_num是我匹配的列,然后我尝试加载该表中的列(updated_at,{{ 1}},method)进入html表。

受影响的代码如下。视图/路由/控制器工作,它只是这个功能我创建的不是加载数据。非常感谢任何帮助。

控制器代码:

notes

查看代码:

public function show($id)
{
    $d = Dealer::find($id);
    if(!$d){
        \Session::flash('warning_message', 'Sorry that resource can not be found.');
        return redirect()->route('account.dealer.index');
    }

    $calls_allowed = DB::table('dealers.dealers')->
    where('dealer_num', $id)->
    pluck('calls_allowed');

    $contact_events = DB::table('dealers.contact_events')->
    where('dealer_num', $id)->
    pluck('updated_at', 'method', 'notes');

    if(!empty($calls_allowed)){
        $d->calls_allowed = $calls_allowed[0];
    } else {
        $d->calls_allowed = null;
    }
    return view('Account.Dealer.show')->with('dealer', $d);
}

2 个答案:

答案 0 :(得分:2)

从数据库中检索后,您似乎没有将数据分配给对象。

$contact_events = DB::table('dealers.contact_events')->
where('dealer_num', $id)->
pluck('updated_at', 'method', 'notes');

// add this
$d->contact_events = $contact_events;

答案 1 :(得分:0)

这似乎是使用Laravel的雄辩ORM力量的最佳时机......

Check out the with and has in the Laravel docs

这需要根据您的需求进行一些调整,但它会是这样的:

#version 330
layout(location = 0) in vec2 position;
layout(location = 1) uniform float TimeUniform = 0.0f;
out float TimeUniformFrag;
void main() {
    gl_Position = vec4(position.x - 1.0f, position.y - 1.0f, 0.0f, 1.0f);
    TimeUniformFrag = TimeUniform;
}
...
Vertex Shader: 0:3(1): error: uniform explicit location requires GL_ARB_explicit_uniform_location and either GL_ARB_explicit_attrib_location or GLSL 3.30.

这使用Eloquent来获取属于$ id的经销商的所有contact_events。

然后你可以做这样的事情 注意:这假设calls_allowed是经销商表上的记录。如果我误解了这一点,你仍然可以运行,而不是像你拥有它那样包含它。

$d = Dealer::where('id', '=', $id)
     ->with('contact_events')->first();