Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.07.2014 23:19:13

Ваня

Вопрос по form::model

Здравствуйте.
Собственно вопрос, можно ли с помощью form::model заполнить вместо значения формы, плейсхолдер, и значение label

#2 15.07.2014 08:12:31

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Вопрос по form::model

То что вы просите несколько противоестественно, можно чуть подробнее чего вы добиваетесь?

Не в сети

#3 15.07.2014 08:57:28

Ваня

Re: Вопрос по form::model

Ну вот скрин http://puu.sh/ac1ck/4bbde718ba.png
Мне нужно брать данные из бд и подставить их в placeholder и в label, через form::model у меня получилось только в сам инпут вставить текст.

#4 15.07.2014 09:54:36

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Вопрос по form::model

Это естественное поведение, беря из бд данные методом Form::model, подразумевается что вы эти данные измените и отправите на сохранение. Соответственно я не понимаю зачем хранить в бд значения placeholder и label. В данном случае лучше использовать Form::open().

Вот как я обычно делаю:

  1. Создаю файл локализации приложения в папке lang (назовем его mySite.php)
PHP
<?php
// /app/lang/ru/mySite.php

return array(
  
'labelName' => 'Как звать-величать',
  
'placeholderName' => 'Имя, лучше с фамилией',
  
'labelInfo' => 'О себе',
  
'placeholderInfo' => 'Расскажите о себе в свободной форме, но обязательно на тему сотрудничества',
  
'labelEmail' => 'Email для получения ответа',
  
'placeholderEmail' => 'ваш@mail.com',
  
'submitBtn' => 'Отправить',
);
  1. Создаю аналогичный файл для английской локализации, на английском соответственно, если локаль только одна то не нужно, главное не забыть указать в настройках /app/config/app.php ’locale’ ⇒ ’ru’,
  2. Создаю view
PHP
{{ Form::open() }}

  {{ 
Form::label('name'trans('mySite.labelName')) }}
  {{ 
Form::text('name'Input::old('name'), array('placeholder' => trans('mySite.placeholderName'))) }}

  {{ 
Form::label('info'trans('mySite.labelInfo')) }}
  {{ 
Form::textarea('info'Input::old('info'), array('placeholder' => trans('mySite.placeholderInfo'))) }}

  {{ 
Form::label('email'trans('mySite.labelEmail')) }}
  {{ 
Form::text('email'Input::old('email'), array('placeholder' => trans('mySite.placeholderEmail'))) }}

  {{ 
Form::submit(trans('mySite.submitBtn')) }}

{{ 
Form::close() }}

Не в сети

#5 15.07.2014 12:53:28

Ваня

Re: Вопрос по form::model

Ну да, ваш способ удобен, просто у меня сейчас задача разобраться именно с моделями и с model::form.
У меня сейчас данные не в бд хранятся а в самой модели http://puu.sh/acc14/8ecc0f3229.png
И вот можно ли использовать это для заполнения данных через  form::model, или придется просто в view получить этот массив и обозначать через mas['nameLabel'];

#6 15.07.2014 13:26:27

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Вопрос по form::model

Можно, самое простое

PHP
{{ Form::model($modelName) }}
{{ 
Form::label('name'$modelName['mass']['labelName']) }}
{{ 
Form::text('name'Input::old('name'), array('placeholder' => $modelName['mass']['placeholderName'])) }}

Но лучше, наверное, расширить класс FormBuilder, чтобы это все автоматом цеплялось, или макросами.

Не в сети

Подвал раздела