Laravel-4 comment remplir sélectionner la zone à partir de la base de données avec l'id de la valeur et de la valeur de nom
Je veux remplir une boîte de sélection avec clients
à partir de ma base de données dans les projets contrôleur comme un projet appartient à un client
mais il appartient aussi à l'utilisateur qui est connecté.
Je veux créer une zone de sélection comme celle ci-dessous:
<select>
<option value="$client->client_id">$client->client_name</option>
<option value="$client->client_id">$client->client_name</option>
</select>
J'ai cela en laravel qui remplit mon sélectionnez le champ avec le client noms cependant la value
attribut est le nom du client et je préfère cela avait le client_id.
La façon dont je l'ai fait c'est comme ci-dessous:
ProjectController.php
public function create()
{
//find logged in users clients
$clients = Auth::user()->clients;
$client_selector = array();
foreach($clients as $client) {
$client_selector[$client->client_name] = $client->client_name;
}
//load the create form (app/views/projects/create.blade.php)
return View::make('projects.create', array('client_selector' => $client_selector));
}
create.blade.php
{{ Form::open(array('action' => 'ProjectController@store', 'id' => 'createproject')) }}
<div class="form-group">
@if(count($client_selector)>0)
{{ Form::label('select_client', 'Select Client', array('class' => 'awesome')); }}
<!-- SELECT IS CREATED HERE -->
{{Form::select('client', $client_selector, array_values($client_selector)[0])}}
@endif
</div>
<div class="form-group">
{{ Form::label('project_name', 'Project Name') }}
{{ Form::text('project_name', Input::old('project_name'), array('class' => 'form-control')) }}
</div>
Comme vous pouvez le voir de la façon dont la sélection est en cours de création, il est l'aide de l'client_name pour remplir les valeurs des attributs et je ne suis pas vraiment beaucoup d'un expert sur Laravel donc je ne suis pas sûr de la façon de modifier ces attributs.
Si tout pourrait peut-être me montrer comment c'est fait ou a une meilleure méthode de réalisation de ce alors s'il vous plaît me donner quelques exemples!
Merci d'avance.
OriginalL'auteur 001221 | 2013-11-16
Vous devez vous connecter pour publier un commentaire.
Trouvé un moyen de faire ce
ClientController.php
create.blade.php
Espère que cela aide les autres à avoir des problèmes de ce genre.
N'est pas une mauvaise pratique d'appeler directement un tableau par son nom?
OriginalL'auteur 001221
J'ai eu aussi un réfléchir et est venu avec les éléments suivants:
Dans mon modèle:
Alors je peux il suffit de mettre ceci dans mon point de vue:
Peut-être que quelque chose comme cela? fonction publique scopeForSelectBox($query, $titre = 'Pays') { $pays = $query->listes('nom', 'id')->toArray(); array_unshift($pays,$titre); return $pays; }
OriginalL'auteur Wally
Ici, vous pouvez utiliser listes méthode. Dans votre client de contrôleur ne
Et dans la vue, il suffit d'utiliser la variable comme,
OriginalL'auteur Jyothu