2014-06-18 5 views
1

나는 타임 스탬프 배열을 가지고 있는데 이것을 테이블의 것과 비교하고 싶습니다.데이터베이스에서 데이터를 가져 오기 위해 웅변적인 ORM을 사용합니다.

public function create(){ 

    $from = Input::get('from'); //array of timestamps of current messages displayed 
    $conv_id = Input::get('conv_id'); //array of ids 

    //get all messages related to the array of ids 
    $allMessages = Messages::whereIn('conv_id',$conv_id); 

    //get the messages in database which have timestamps greater than the current ones displayed. 
    $messages = $allMessages->where('created_at','>',$from); 

    return $messages->get()->reverse(); 
} 

통과 한 타임 스탬프 작동 : 이것은 내 컨트롤러에 내 코드입니다. 그러나 일 때 전달 된 타임 스탬프 중 배열 인 경우 Laravel은 최신 메시지를 감지하지 못했습니다. 나는 시도했다,

$messages = $allMessages->whereIn('created_at','>',$from); 

그러나 그것은 배열에서 문자열로 변환 오류를 반환합니다. 내가 잘못 사용했을 수도 있습니다.

그래서 을 반복합니다. Input 클래스에서받은 타임 스탬프보다 타임 스탬프가 큰 모든 메시지를 테이블에서 어떻게 받습니까?

PHP의 explode()을 사용하여이 작업을 수행 할 수 있다고 생각하지만 가능하면 코드를 'Laravel-ish'로 유지하고 싶습니다. explode()이 불가피한 경우 사용 방법을 알려주세요. Btw, 코드 향상을위한 보너스 인상 포인트! 고맙습니다!

p.s. 당신은 당신이 정확히 무엇을해야하지만 배열의 최신 날짜를 찾아 그것을 사용하는

array (size=2) 0 => string '2014-06-18 06:53:45' (length=19) 1 => string '2014-06-18 14:52:29' (length=19) 
+0

당신을 오해 한 경우 용서해주십시오.하지만 배열에서 $ 최신 메시지보다 늦은 시간 스탬프를 사용하는 모든 메시지를 원하는 것처럼 보입니다. 이것이 사실이라면 가장 좋은 방법은 하나의 타임 스탬프가 무엇인지 계산하여 쿼리에 제공하는 것입니다. 또는 가장 이상적인 것은 배열 대신 폼에 최신 이벤트를 보내는 것입니다. –

+0

답변을 삭제했지만이 날짜는 'asort'와 같은 함수를 사용하여 정렬 할 수 있으며 최대 값을 쉽게 얻을 수 있습니다. –

+0

@ WereWolf-TheAlpha 노력에 감사드립니다! 고맙습니다. :) – Mark

답변

3

:이 dd($from)의 결과입니다.

는 created_at 타임 스탬프가 $from 배열의 최신 날짜보다 큰 모든 메시지를 반환합니다 쉽게

$from = array('2014-06-18 09:10:32', '2014-06-17 10:52:25'); // Input::get('from'); 
$conv_id = Input::get('conv_id'); 

asort($from); // Sort the array of dates in order of earliest date first. 

$messages = Messages::whereIn('conv_id', $conv_id)->where('created_at', '>', end($from))->get(); 

이 수행 할 수 있습니다.

+0

+1, 이것은'desc '순서로 날짜를 주지만 더 좋았습니다. –

+1

@Joe 물론 그렇습니다! 왜 지구상에 모든 타임 스탬프가 항상 서로 순서대로 있는지 3 개의 타임 스탬프를 비교하고 싶습니다. 그리고 나는 최근의 타임 스탬프를 비교할 수 있습니까? 와우, 나는 지금 매우 어리 석다. 고마워요! – Mark

+0

기꺼이 도움이 될 수 있습니다. 참고로 php.net의이 페이지는 배열 정렬 등에 유용합니다. http://www.php.net//manual/en/array.sorting.php – Joe

관련 문제