Je construis une application multi langues avec Laravel, et j'ai besoin que les utilisateurs puissent se connecter et sélectionner leur langue préférée (table "langues") à partir d'un champ de sélection et stocker dans la base de données ("language_id" dans la table "users") simplement en le sélectionnant dans le champ. Je n'ai actuellement aucune idée de comment je peux y parvenir sans un formulaire et un bouton de soumission. Quelqu'un peut-il m'expliquer comment je peux faire cela correctement?Sauvegarder la valeur sélectionnée onchange Laravel
Contrôleur: Toutes les langues disponibles sont stockées dans une variable et envoyées à toutes les vues.
namespace App\Http\Controllers;
use App\Language;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\View;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function __construct()
{
$languages = Language::all();
View::share('languages', $languages);
}
}
sélectionnez Menu: une boucle foreach qui renseigne le champ de sélection avec les langues envoient via le contrôleur.
<li>
<select class="form-control" id="language" name="language">
@foreach ($languages as $language)
<option value="{{ $language->id }}">{{ $language->name }}</option>
@endforeach
</select>
</li>
Base de données: table « utilisateurs » a « language_id »
Donc la sélection de langue fait partie du formulaire de connexion? – Jerodev