2010-01-16 49 views
0

我只需要允许成员对住宿进行评论,如果他们留在住处并且member_id与Auth-> user('id')匹配。Cakephp检查两个值是否在数组中

在住宿/视图我通过BookingRequests数据。

它看起来像这样

BookingRequest 
    0 
    member_id => 4 
    accepted => 1 
    1 
    member_id => 5 
    accepted => 0 
    2 
    member_id => 4 
    accepted => 0 

如何将搜索数组,所以我可以只允许谁也住才能添加评论的人吗?

回答

0

在其他语言的PHP中并不那么容易,所以您必须以不同的方式注入。

事情是这样的:

$vars = array(); 
foreach ($members as $request) { 
    if ($request->accepted) { 
    array_push($vars, $request); 
    } 
} 
0

试试这个,

function search($array, $key, $value) 
    { 
     $results = array(); 

     if (is_array($array)) 
     { 
      if ($array[$key] == $value) 
       $results[] = $array; 

      foreach ($array as $subarray) 
       $results = array_merge($results, search($subarray, $key, $value)); 
     } 

     return $results; 
    } 

    $array = array(
        "member_id" => 4, array("accepted" => 11), 
        "member_id" => 5, array("accepted" => 02), 
        "member_id" => 4, array("accepted" => 0) 
        ); 


    $stayedmember = search($array,$memberID,"accepted"); 

    print_r($stayedmember); 
0

假设“接受”决定,如果他们住在住宿与否及以下的测试序列的确是的格式的数据阵列,那么你可以使用下面的代码:

/* Test data */ 
$BookingRequestData = array(
    array('member_id' => 4, 'accepted' => 1), 
    array('member_id' => 5, 'accepted' => 0), 
    array('member_id' => 4, 'accepted' => 0) 
); 

$canAddReview = (count(Set::extract("/data[member_id=" . $this->Auth->user('id') . "][accepted=1]", array('data' => $BookingRequestData))) > 0);