Laravel 4 - 将数据库结果导入视图

时间:2013-06-15 06:05:49

标签: laravel laravel-4

我在学习将数据放入我的视图时遇到了一些麻烦,我希望有人可以帮助我。

我的模型中有以下功能

public function getPrivateMessages()
{

    $userId = Auth::user()->id;

    $messages = DB::table('pm_conversations')
                    ->where(function($query) use ($userId) {
                        $query->where('user_one', $userId)
                            ->where('user_one_archived', 0);
                    })
                    ->orWhere(function($query) use ($userId) {
                        $query->where('user_two', $userId)
                            ->where('user_two_archived', 0)
                    })
                    ->get();

}

我如何将它传递给我的控制器,然后进入我的视野?

我有点失落。

由于

3 个答案:

答案 0 :(得分:6)

假设这是您的对话模型,您需要返回您查询的那些消息:

public function getPrivateMessages()
{

 ...

    return $messages;

}

在控制器中使用它传递到您的视图:

class HomeController extends Controller
{
    public function index()
    {
        $conversation = Conversation::find(1);

        return View::make('index')->with('privateMessages', $conversation->getPrivateMessages());
    }
}

并在您的视图中显示您需要的任何内容:

<html><body>
    @foreach($privateMessages as $privateMessage)
        {{$privateMessage->text}}
    @endforeach
</body></html>

答案 1 :(得分:1)

在您的控制器中,您可以通过以下某项操作调用此方法:

$pms = MyModel->getPrivateMessages();
return View::make('layout')
    ->with('pms', $pms);

请注意,MyModel应替换为模型的实际名称。 ->with('pms',$pms)位表示,将变量$ pms的内容传递给'layout'视图,并将其分配给该视图中名为'pms'的变量。您可以随意自定义视图名称以匹配您要使用的任何视图,如果您愿意,可以选择不同的变量名称。

然后,在您的视图中,您将使用它:

@foreach($pms as $pm)
    <p>From: {{ $pm->user_one}}</p>
    <p>{{ $pm->message }}</p>
@endforeach

在这里,我们只是循环遍历每个私有消息并输出一些字段(user_onemessage,您需要使用数据库中所有列的名称)。

有关详细信息,请参阅文档的以下部分:

答案 2 :(得分:1)

在您的视图中

<?php $var=DB::table('tablename')->get(); ?>
@foreach($var as $variable)
   {{ $variable->tablefield }}
@endforeach

这里我们从数据库(abbrievated as DB)访问名为'tablename'的表,然后通过get方法访问表的所有列。然后我们将它们存储在随机变量中(比如var,以便我们可以轻松地循环它)。然后我们只是循环来打印我们的列数据(如上例所示)