2016-06-30 2 views
0

나는 정말 간단하지만 아직 작동하지 않는 것을 시도하고 있습니다. 하나의 컨트롤러에서 하나의 데이터베이스를 선택하여 사용자에 대한 정보를 보여줍니다. 이제 문제가 컨트롤러의 부분은 좀 다른 정보를 표시하는 두 번째 테이블에서 선택하려면이 동일한 컨트롤러에 노력하고있어하지만 난laravel 컨트롤러에서 데이터베이스에서 선택하기

Undefined variable...를 얻을

public function orderView($orderId, $userId) { 

    $order = self::$user->orders()->where('order_id', $orderId)->first(); 
    $keys = Keys::all(); 

    if (!$order) { 
     App::abort(404); 
    } 

    $userID   = $order['user_id']; 
    $orderID  = $order['order_id']; 
    $public_key  = $keys['public_key']; 
    $private_key = $keys['private_key'];     

    $options = array(
      "public_key" => $public_key, 
      "private_key" => $private_key,    
      "orderID"  => $orderID,  
      "userID"  => $userID  
    ); 

나는 여기에 추가

입니다 무엇을
$keys = Keys::all(); 
$public_key  = $keys['public_key']; 
$private_key = $keys['private_key']; 
.... 
"public_key" => $public_key, 
"private_key" => $private_key, 

오류가 Undefined index: public_key

+0

당신의 키 때문에이 :: 모두 웅변 객체의 배열을 반환합니다. 귀하의 경우에는 $ keys [0] [ 'public_key']가됩니다. 그것이 첫 번째 결과라고 가정합니다. 대신 다른 쿼리를 사용하여 필요한 키만 반환해야합니다. – SArnab

답변

2

Keys::all()Illuminate\Database\Eloquent\Collection를 반환합니다.

컬렉션의 단일 항목에 액세스하려면 컬렉션을 반복하고 개별적으로 액세스하거나 first()과 같은 Collection의 기능을 사용하여 항목 하나를 가져와야합니다. 예를 들어

:

public function orderView($orderId, $userId) 
{ 
    $order = self::$user->orders()->where('order_id', $orderId)->first(); 
    $keys = Keys::all(); 

    if (! $order) { 
     App::abort(404); 
    } 

    $options = []; 

    foreach ($keys as $key) 
    { 
     $options[] = [ 
      'public_key' => $key->public_key, 
      'private_key' => $key->private_key, 
      'userID'  => $order->user_id, 
      'orderID'  => $order->order_id 
     ]; 
    } 

    return $options; 
} 

You can find more information about Illuminate Collection methods here.

+0

감사합니다. 답변에 감사드립니다. 이 작업과'return $ options'는 올바른 정보를 반환하지만'$ box = new Box ($ options);'라는 새로운 클래스에서 바로이 옵션을 사용합니다. 그러나'Box PUBLIC KEY - 비어있을 수 없습니다. ' – Garg

+0

'Box' 클래스의 코드를 볼 필요가 있습니다. 그렇지 않으면 여러분을 도와 주는데 어려울 것입니다. – GiamPy

+0

그것은 매우 거대한 1000 + 라인입니다. 문제는'Box' 클래스가'public key' 값을 리턴하지만 저는 그것을 필요로하지 않습니다.하지만 성가신 것입니다. 이것을 제외시킬 수 없습니다 ..이 클래스가 아닌 데이터베이스의 공개 키를 표시하고 싶습니다. – Garg

관련 문제