2016-02-24 2 views
2

Я использую Laravel 5,2 ..
Там является user и profile стол, это соотношение один к одному между ними,
в ProfileController,
после входа пользователя в систему ,
когда доступ create функция
если профиль пользователя не был создан, вернитесь create страницу,
еще,
перенаправлять edit функции.Laravel 5.2: создание и редактирование функции

Вопрос:
Как написать функцию create и функцию edit?
Я извинил часть их.
1, как написать параметр id в create функция?
2, как найти информацию о пользователе пользователя в edit функция?

ProfileController:

public function create() 
    { 
     $user = \Auth::user(); 
     if (!$user->profile) { 
      return view('profile.create'); 
     }else{ 
      //how to write 'id' 
      return redirect()->action('[email protected]', ['id' => .......]); 
     } 
    } 

    public function edit() 
    { 
     //how to find the profile of the login user? 


     return view('profile.edit', compact('profile')); 
    } 
+0

что ваша проблема? –

+0

Вместо этого я создаю соответствующую запись профиля на 'User :: create()': https://laravel.com/docs/master/eloquent#events –

+0

@MartinBean Я не понимаю, пример лучше. – sunshine

ответ

2

Вам нужно что-то вроде этого:

public function create() 
{ 
    $user = \Auth::user(); 

    if(isset($user->profile)) { 
     return redirect()->action('[email protected]', ['id' => $user->id]); 
    } 

    return view('profile.create'); 
} 

// Get the current user 
public function edit(App\User $user) 
{ 
    if($user->id === \Auth::user()->id) { 
     $profile = \Auth::user()->profile; 

     return view('profile.edit', compact('profile')); 
    } 
} 
+0

'edit (App \ User $ user)' вы не передаете экземпляр, в котором вы передаете только идентификатор '['id' => $ user-> id]' – Froxz

+0

@Froxz. Использует привязку маршрутной модели в 5.2. – Chris

+0

У меня получилось) Я все еще с 5.1)) – Froxz

1
$user = \Auth::user(); 

То же, что у вас есть в public function create() переменная $user будет содержать информацию о текущем пользователе

Далее вам может создать минусы Метод tructor как

use Illuminate\Contracts\Auth\Authenticatable; 
protected $user; 
public function __construct(Authenticatable $user){ 
    // $user is an instance of the authenticated user... 
    $this->middleware('auth'); 
    $this->user = $user; 
} 
public function edit(){ 
    $user = $this->user; 
} 

Читать DOCS

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