Add Class to select element on Laravel - php

I have this problem, I can't find the way to add class attribute in this Dropdown box
{{Form::select('bancada', Bancada::lists('nombre','idBancada'))}}
I have tried various syntax, but can not get it to work.
Any suggestions? Thanks

Use the forth parameter to add attributes to your element.
{{Form::select('bancada', Bancada::lists('nombre','idBancada'), null, ['class' => 'my_class'])}}
Take a look at the source ($options is the same as attributes for your element).

{{ Form::select('status', $statusList, null, array('class' => 'form-control')) }}
In above example you can add class as fourth parameter

Related

Laravel Form Class without second argument

I simply want to give the text element of my edit-form a class.
{{ Form::text('first_name') }}
I know that i have to use an array with the class of the field as third argument. But i do NOT want to give a second argument. This one
{{ Form::text('first_name' , ' ' , array('class' => 'form-control')) }}
applys the class correctly, but sets the dafault value to an empty string. This is a problem, because now laravels auto-complete function doesn't fill the form with the correct data from the database. Is there a way to give no second argument or setting it to default like this?
{{ Form::text('first_name' , default , array('class' => 'form-control')) }}
Thanks!
Okay, i solved it myself. It is as easy as it always is. Simply use
{{ Form::text('first_name' , null , array('class' => 'form-control')) }}

Laravel Collective Formbuilder label localization

I just started using the Laravel Collective Form Service Provider/FormBuilder.
I use this custom component for rendering a text field with label. The problem is that I am trying to translate it's label with the __() function but the $name variable gets tansformed from first_name to First Name in a really late stage.
<div class="control-group">
{{ Form::label($name, null, ['class' => 'group__label']) }}
{{ Form::text($name, $value, array_merge(['class' => 'control-
group__control'], $attributes)) }}
</div>
I can't simply do this:
{{ Form::label(__($name), null, ['class' => 'group__label']) }}
Again, because it gets first_name and later transforms it into First Name. My nl.json file contains a translation for First Name, not first_name.
If I add the _() translate function to the last rule of the label method in FormBuilder is, then it solves my problem. But ofcourse, I don't want to modify vendor code!
return $this->toHtmlString('<label for="' . $name . '"' . $options . '>' . __($value) . '</label>');
So. How to solve this issue? Do I, somehow, need to create a custom FormBuilder->label() method?
Use trans() helper:
{{ Form::label(trans($name), null, ['class' => 'group__label']) }}
Using name of field with trans() can create errors when the language changed.
you should use somthing like this
{{ Form::label('name', trans(''), ['class' => '']) }}

Laravel 5 binding value in bootstrap-slider in edit/Patch

I'm implementing bootstrap-slider in my CRUD, I have implemented it successfully in Create, the problem is when I try to edit it,
I want to get the current value from the Model. Idk how to do this.
This is for PATCH.
<div class="form-group">
<h3 class='box-title text-info'>Percentage</h3>
{!! Form::input('text','percentage',null,['id'=>'ex8', 'data-slider-id'=>'ex1Slider', 'data-slider-min'=>'0', 'data-slider-max'=>'100', 'data-slider-step'=>'5', 'data-slider-value'=>'50']) !!}
</div>
In your form instead of creating a new form. You will bind the form to the model.
{!! Form::model('modelname', [options here] !!}
All the fields will math the model's property values.
Edit
Here is an example
You must used something like this to create a EDIT FORM
{{ Form::model($smartphones, ['method' => 'PATCH', 'url' => 'smartphones/'.$smartphones->id]) }}
You get by using $(your_model)['inputID']...You can use in "data-slider-value"... Something like this
{{ Form::input('text','mem_ram', null, ['id' => 'mem_ram', 'data-slider-value'=>$smartphones['mem_ram']]) }}

Laravel Select Box

I'm trying to figure out how I can structure my Laravel select menu so that it shows up as this for a final render. Has anyone done such a thing.
The location is a property of the arena object.
<option value="arena_id">Arena Name - Location</option>
{{ Form::select('arena_id', [ null => 'Please Select'] + $arenas, null, ['id' => 'arena_id']) }}
I asssume $arenas comes from something like Arena::where('foo', bar)->get(), but with get() you will get an instance of Illuminate\Database\Eloquent\Collection instead of an actual array which is what you want in Form::select.
So what you need to do is to use lists($field, $key), it will fetch you rows and return it as an array.
$arenas = Arena::where('foo', bar)->lists('name', 'id');
There is a code example here with some comments from users if you want to learn more.
You can use pluck function for getting the results as array
refer https://laravel.com/docs/5.1/collections#method-pluck
$select = $this->all()->pluck('title', 'id');
Then you can use below sample code for creating select box with selected option in blade template
{{ Form::select('name',$select,'selected option id',['class' => 'form-control']) }}

How to set form input required attribute in laravel 4

I'm using the laravel framework for a project, and I'm implementing a basic form page, where I require certain values to be required, something that can be done very easily in HTML5.
<input type="text" name="abc" required>
In laravel, without the required attribute, the same would be :
{{ Form::text('abc') }}
How do I incorporate a required attribute in the above statement?
Since simply writing ['required'] did not work, I searched online a bit more and found the answer, so I thought I'd share it here.
The third parameter is an array of optional attributes, which, in convention, must be written as:
{{ Form::text('abc','',array('required' => 'required')) }}
Similarly, for a radio button with default selected/checked we have:
{{ Form::radio('abc', 'yes', array('checked' => 'checked')) }}
Check out the API-Docs. The method signature shows that you can provide 3 parameters.
The first one is the name attribute, the second one is the value attribute. Third one is your array with any additional attributes.
So just call your method with:
{{ Form::text('key', 'value', ['required']) }}
And a required attribute will be attached to your input field.
I believe the correct answer is similar to the other post where the third parameter is
array('required' => 'required')
however to get the attribute without any value you can do the following:
array('required' => '')
The input field (for text example), will then look what was necessary in the question.
Laravel Example:
{{ Form::text('title', '', array('tabindex' => '1', 'required' => '')) }}
HTML output:
<input tabindex="1" required name="title" type="text" value="" id="title">
I believe this actually shorthand for required='', just wanted to add this note
Radio required featured works with laravel 5.7 version
#foreach($status_list as $status_key => $status)
{!! Form::radio('status', $status_key, false, array('id'=>'status_'.$status_key, 'required'=>'required' )); !!}
{!! Form::label('status_'.$status_key, $status ) !!}
#endforeach
I hope, this will help you also. :)

Categories