我在学习将数据放入我的视图时遇到了一些麻烦,我希望有人可以帮助我。
我的模型中有以下功能
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();
}
我如何将它传递给我的控制器,然后进入我的视野?
我有点失落。
由于
答案 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_one
和message
,您需要使用数据库中所有列的名称)。
有关详细信息,请参阅文档的以下部分:
答案 2 :(得分:1)
<?php $var=DB::table('tablename')->get(); ?>
@foreach($var as $variable)
{{ $variable->tablefield }}
@endforeach
这里我们从数据库(abbrievated as DB)访问名为'tablename'的表,然后通过get方法访问表的所有列。然后我们将它们存储在随机变量中(比如var,以便我们可以轻松地循环它)。然后我们只是循环来打印我们的列数据(如上例所示)