php
  • laravel
  • 2016-05-31 10 views 1 likes 
    1

    私はかなりlaravelに慣れていて、私は自分のプロジェクトに "dm's"をお互いに送ることができるシステムを実装しています。しかし、今、作成ビューにチェックボックスがあり、そこであなたはdmを送るユーザをチェックすることができます。Laravelはビュー/コントローラにユーザーIDを渡します

    $users = User::where('id', '!=', Auth::id())->get(); 
    

    私の目標は、ユーザーが他のビュー内の他のユーザー名をクリックするとか何か「DM送信」でオプションを選択することができるということです。私は私のコントローラで関数を作成中に、このようなユーザーを取得します。しかし私はアイデアを持っていないので、私のコントローラのcreate関数にそのidを渡すことができます。チェックボックスを非表示にして、渡されるIDを選択する必要がありますか?または私のゲームプランはここにあるべきですか?

    これは私のこれらは私のルートです

    public function create($userid) 
        { 
         $users = User::where('id', '=', $userid); 
         return view('messenger.create', compact('users')); 
        } 
    

    私のコントローラ内の関数を作成することです:

    Route::group(['prefix' => 'messages'], function() { 
        Route::get('/', ['as' => 'messages', 'uses' => '[email protected]']); 
        Route::get('create/{userid}', ['as' => 'messages.create', 'uses' => '[email protected]']); 
        Route::post('/', ['as' => 'messages.store', 'uses' => '[email protected]']); 
        Route::get('{id}', ['as' => 'messages.show', 'uses' => '[email protected]']); 
        Route::put('{id}', ['as' => 'messages.update', 'uses' => '[email protected]']); 
    }); 
    

    問題は、私は私の作成機能でその$ユーザーIDを埋める方法がわからないです。 しかし、私、これはそれを行うための正しい方法であることを確認していない、私は完全に間違ってパス上にあるかもしれないと思うここ

    は本当にすべてのヘルプを事前に

    感謝を使用することができます!ユーザー情報でフォームをロードするには

    Route::get('create/{userid}', ['as' => 'messages.create', 'uses' => '[email protected]']); // to load the form 
    Route::post('create/{userid}', ['as' => 'messages.create', 'uses' => '[email protected]']); // to create the DM 
    

    あなたのルート:

    +0

    Route::get('/message/create/{user_id}', [ 'uses' => '[email protected]', 'as' => 'createMessage' ]); 

    あなたのルートパラメータのuser_idを取得するので、のようなあなたのコントローラでmethondを作成たとえば、次のように変数$ idをコントローラに渡します。 ルートの場合、some user

    答えて

    0

    に渡すことができますここではdmがアプローチです。 dmのビューとユーザーとのビューが必要です。

    <a href"{{ route('createMessage', ['user_id' => $user->id]) }}">Send message to: {{ $user->name }}</a> 
    

    あなたは(する$ user-> ID)にメッセージを送信するユーザーのIDを持つルートパラメータとしてuser_idを送る: はここでユーザーです。ここ はルートです:「他のユーザー名」にユーザーがクリックは、使用してカスタムリンクを必要とするとき

    public function create($user_id) 
    { 
        $user = User:find($user_id); 
    
        return view('messenger.create', ['user' -> $user]); 
    } 
    
    +0

    名前またはIDを作成ビューに送信して、同じIDまたは名前のチェックボックスをチェックすることができます。 – Cruzito

    +0

    新しいルートと機能を作成せずに、または私は間違っていますか? – Cruzito

    +0

    よく1人のユーザーを選択するか、複数のユーザーを選択できますか? – Codearts

    0

    ことは、これを試してみてください

    public function createForm($userid) 
    { 
        $user = User::find($userid); 
        return view('messenger.create', array("user" => $user)); 
    } 
    

    あなたがのためのaction属性にURLにIDを時代遅れすることができます例:

    <form action="create/{{ $user->id }}" method="POST"> 
    

    DMを作成する方法:あなたがリンクを使用して、単一のユーザaを送信したい場合は

    public function create($userid) 
    { 
        $user = User::find($userid); 
        //create the DM 
    } 
    

    別のソリューションがありますが、あなたは隠し入力

    +0

    but I don't want to use a form to pass the id just a link is this possible? – Cruzito

    +0

    You can create another route, and a link like this :

    関連する問題