2017-08-04 5 views
1

名前の値を持つid値を取得するにはどうすればよいですか?フォームLaravelに他の値を持つ行のIDを取得

私はこのフォームを持っている:

<form enctype="multipart/form-data" id="projectclientexist" name="projectclientexist"> 
    @foreach ($clients as $key => $client) 
    <div class="radio"> 
     <div class="col-md-3"> 
      <label><input type="radio" name="client" value="{{$client->name}}">{{$client->name}}</label> 
     </div> 
    </div> 
    @endforeach 
    <input type="submit" value="Crear relacion Proyecto-Cliente" id="relationclientexist" name="relationclientexist" class="btn btn-success"> 
</form> 

は、どのように私はそれが名前の値を持つクライアントのid値を取ることができますか?

public function storeProjectsClientsIfExist (Request $request) 
{ 
    $client_project->project = new Client_Project(); 

    $client_project->client_id = DB::table('clients') 
           ->where('id', DB::raw("(select max(id) ")); 

    $client_project->project_id = DB::table('projects') 
           ->where('id', DB::raw("(select max(`id`) from projects)")) 
           ->first() 
           ->id; 
    $client_project->save(); 
} 

ありがとう、コードについて質問がありましたら、お聞かせください。

+0

:多くのIDが指定された名前に関連付けられている場合

$client_id = DB::table('clients')->where('name',$request->client))->first()->id; 

を、あなたはこれを使用することができますか? –

+0

もちろん、フォームに名前の値を渡すときにクライアントのIDを取得する方法) –

+0

この '$ client_project-> client_id = DB :: table( 'clients') - > where( 'name'私が提出したときにhttp://web.loc/admin/projects?client = projecto + de +に行く理由を知っておいてください:http://web.loc/admin/projects?$ request( 'client')) - > first() - > id; ':) ' – Maraboc

答えて

1

私はあなたがこれを試すことができると思うの値にクライアントのIDを渡す必要があります:

public function storeProjectsClientsIfExist(Request $request) 
     { 
      $client_project->project = new Client_Project(); 
      $client_project->client_id = DB::table('clients')->where('name', $request->client)->first()->id; 
      $client_project->project_id = DB::table('projects')->where('id', DB::raw("(select max(`id`) from projects)"))->first()->id; 
      $client_project->save(); 
     } 

あなたのためにこの作品がほしいと思っています!

2

奇妙なことに尋ねられました。あなたのクッキーノを正しく理解していれば、選択したクライアントのIDを取得したいですか?コントローラには、あなたはこのように確認されたクライアントを取得し、その後

<label><input type="radio" name="client" value="{{$client->id}}">{{$client->name}}</label> 

:その場合は

、ビューでは、フィールドのvalue属性は、IDを格納する必要が

$clientID = $request->input('client'); // or $request->client; 
$clientObj = Client::find($clientID); // Your client model object, if needed. Equals to: DB::table('clients')->find($clientID); 

編集:私はあなたのCreating default object from empty valueは、$client_project->project = new Client_Project();の非オブジェクトにプロパティを追加しようとするとエラーが発生したと思います。 stdClassでオブジェクトとして$client_projectを定義する必要があります(これはデフォルトのクラスであり、プロパティもメソッドもありません。空のjavascriptオブジェクトのようなビットです)。

は、そこでここでは、次のとおりです。あなたは、クライアントのを選択したい場合は

public function storeProjectsClientsIfExist (Request $request) 
{ 
    $clientID = $request->input('name'); // get the name field value. 

    $client_project = new \stdClass(); // define the var as an object. 

    $client_project->project = new Client_Project(); 
    $client_project->client_id = $clientID; 
    // currently the next line get the last project added in DB 
    $client_project->project_id = DB::table('projects') 
     ->where('id', DB::raw("(select max(`id`) from projects)")) 
     ->first() 
     ->id; 

    // I think "$client_project->save();" will not work 
    $client_project->project->save(); 

    return view('my.view'); // or redirect()->route('my.route') or what you want 
} 
+0

こんにちは、それは良い、簡単な考えです。とにかく、私にエラーを与えてください: '空の値からデフォルトオブジェクトを作成する ' –

+0

' Client'モデルが定義されていれば、私の答えの '$ clientObj'部分が機能します。あなたの場合、 '$ client_project-> client_id'に' $ clientID'を使うだけでいいと思います。 – iArcadia

+0

モデルが定義されていて、動作していません。:l –

1

があなたの代わりに名前

@foreach ($clients as $key => $client) 
      <div class="radio"> 
        <div class="col-md-3"> 
        <label><input type="radio" name="client" value="{{$client->id}}">{{$client->name}}</label> 
        </div> 
      </div> 
     @endforeach 
+0

あなたが言うように試してから、コントローラでこれを行うのですか?: '$ client_project-> client_id = $ request-> input(" client ");'エラー: '空値からデフォルトオブジェクトを作成する'。私はクライアントidの値を渡すというアイデアが気に入っています。コントローラの価値を取るための簡単な方法です。エラーを修正する方法を知っていますか? –

+0

'$ client_project-> client_id = $ request-> client;'を試してみます –

+0

同じエラーメイトです。 –

0

あなたは、名前に関連付けられている唯一のIDを持っている場合は、この試してください:あなたがあなたの質問に手の込んだ

$client_ids = DB::table('clients')->where('name',$request->client))->pluck('id'); 
関連する問題