2013-09-22 64 views
1

希望你能幫助。 我正在使用Laravel 4,MySQL,當然還有PHP。Laravel 4,複雜的IF SQL選擇

表: MSG

字段:內容,發件人,reciever,sender_deleted,reciever_deleted。

我試圖讓下面的轉換爲SQL:

*Retrieve all where you are the sender, if sender_deleted == 0, and where you are the receiver, if reciever_deleted == 0.* 

基本上我希望所有的味精,如果你是發件人或reciever,並且您沒有刪除該消息。

我絕對卡住了。誰能幫忙?

+0

你想要一個用戶已發送的所有郵件他們自己,或者你已經發送(給任何人)和收到的消息?區別在於你的僞sql中的OR而不是AND。另外,發件人和收件人的用戶ID是什麼? – fideloper

+0

Ty。發件人/收件人是用戶名。我可能會在稍後添加userid,但現在不需要。我想要所有消息,爲用戶發送和接收。對任何人,但不是你自己。 – null

回答

0

你可以嘗試這樣的事情(在你Message模型)

public static function getMessages($user) 
{ 
    $messages = DB::table('msg') 
       ->where('sender', $user) 
       ->where('sender_deleted', 0) 
       ->orWhere('receiver', $user) 
       ->where('reciever_deleted', 0) 
       ->get(); 
       return $messages; 
} 

從您的控制器,那麼你就可以打電話,傳遞給視圖

$messages = Message::getMessages($userid); 
return View::make('message')->with('messages', $messages); 
+0

這工作完美,謝謝! – null

+0

@null,很高興知道,歡迎您:-) –