2014-11-02 2 views
0

Это мой код:Переменные не признается в функции, Laravel

public function userprofile($id) 
{ 
    $users = DB::table('users')->where('username', $id)->get(); 

    $myposts = DB::table('posts')->where('maker', $id)->get(); 

    $user_id = $id; 

    $postsvotes = DB::table('posts') 
    ->join('upvotes', function($join) 
    { 
     $join->on('post_id', '=', 'upvotes.post_id') 
      ->where('upvotes.user_id', $user_id); 
    }) 
    ->get(); 

    return View::make('users.profile')->with('users', $users)->with('myposts', $myposts)->with('myvotes', $postsvotes); 
} 

Я работаю с объединением и, как вы можете видеть в котором у меня есть этот переменный $ user_id, и это должно быть $ ID вы получаете в качестве аргумента функцию userprofile ($ id), но я не могу представить этот аргумент в этом разделе where.

С уважением,

ответ

2

Идите вперед и попробовать (обратите внимание на использования ($ user_id) части):

->join('upvotes', function($join) use ($user_id) 
{ 
    $join->on('post_id', '=', 'upvotes.post_id') 
     ->where('upvotes.user_id', $user_id); 
}) 

Это, вероятно, является переменной проблемой обзорной. См. Пример № 3 Закрытие и охват от http://php.net/manual/en/functions.anonymous.php

Смежные вопросы