Textarea in laravel 5.4 - laravel

I have to print the reponse of API in textarea UI (blade.php) in laravel 5.4.
Tried doing:
{{ Form::textarea('response', '3 < 4') }}
But it gives the following error:
(1/1) FatalErrorException
Class 'Form' not found
What can I do to achieve this. In short I want an response textarea like it is in restclient.
Thanks !

You need to install Laravel FormCollective.
Run the following command from the Terminal: composer require "laravelcollective/html":"^5.2.0"
Next, add your new provider to the providers array of config/app.php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
Finally, add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
Then, you can use {{ Form::textarea('response', '3 < 4') }} in your blade file!
Hope you understand!

The Form class is not a part of the default install of Laravel 5.
Please refer to installation here: https://laravelcollective.com/docs/master/html

Related

Laravel form does not defined

I am new in laravel.I try to build form with laravel collective.I update laravel for collective by composer require laravelcollective/html then add in app.php Collective\Html\ HtmlServiceProvide::class in providers add add
Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\FormFacade::class
in aliases
But it displays errors in these three updated things in providers & aliases(Collective\Html\FormFacade type not defined) and in browser it displays error(form not defined)
Any help?please
First check that you capitalized Form Then try to clear config cache
php artisan config:cache
If you still have a problem you can go to composer.json and check that laravelcollective required then try to run this:
composer update
add your new provider to the providers array of config/app.php:
'providers' => [
// ...
'Collective\Html\HtmlServiceProvider',
// ...
],
add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
// ...
],
then hit blow command in your working directory.
composer dump-autoload
php artisan view:clear

How to integrate smartystreet with laravel

I want to integrated smartystreets with my laravel project but am not able to do so.
I have tried this link , but it throw me error "Undefined constant 'FireEngineRed\SmartyStreetsLaravel\SmartyStreetsServiceProvider'" when i run "$ php artisan vendor:publish".
Any help would be appreciated.`
Change in step 2 of the above link worked for me:
change this:
'providers' => array(
...
'FireEngineRed\SmartyStreetsLaravel\SmartyStreetsServiceProvider',
)
'aliases' => array(
...
'SmartyStreets' => 'FireEngineRed\SmartyStreetsLaravel\SmartyStreetsFacade',
)
to this:
'providers' => [
...
FireEngineRed\SmartyStreetsLaravel\SmartyStreetsServiceProvider::class,
],
'aliases' => [
...
'SmartyStreets' = > FireEngineRed\SmartyStreetsLaravel\SmartyStreetsFacade::class,
],
Note:Add the SmartyStreets providers and aliases element at the end of the both array.

Class 'Form' not found in Laravel 5.3?

In Laravel 5.2 form class in app.php is:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
But this code not work in Laravel 5.3.
How to add class Form in Laravel 5.3 ?
Its called the Laravel Collective package and It has been removed from laravel defaults.
You can still integrate and use it.
here is the documentation
Laravel Collective
How to Install
composer require "laravelcollective/html":"^5.3.0"
Next, add your new provider to the providers array of config/app.php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
Finally, add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
1st step install this via composer
composer require "laravelcollective/html":"^5.3.0"
Laravel Collective here
2nd step add this line in config/app.php under providers
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
3rd step
add this 2 line in config/app.php under aliases array
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
final step then link your html and css this way
{{ Html::style('css/demo.css') }}
{{ Html::script('js/demo.js') }}

Laravel 5.2, LaravelCollective 5.2, Class 'Html' not found

I followed these steps but still getting "Html" class not found.
added in composer.json
"require": {
"laravelcollective/html": "5.2.*"
}
once installed, added these lines in config/app.php
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
please see attached screen shot. what can be the reason, I also tried composer dump-autoload composer clear-cache but it didn't resolve the issue
Updated
View sample code
{!!Html::style('assets/css/bootstrap.min.css')!!}
{!!Html::style('assets/css/custom.css')!!}
{!!Html::script('assets/js/jquery.min.js')!!}
{!!Html::script('assets/js/bootstrap.min.js')!!}
I just found the solution here, its worked perfectly.
Followed these steps
composer require laravelcollective/html
it will install html & form as per your installed Laravel version (mine 5.2)
Added Providers and Aliases
Open config/app.php In providers array add
Collective\Html\HtmlServiceProvider::class
and in aliases array add
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class
Found solution here
http://laraveldeveloper.me/form-in-laravel-5-2/
Stackoverflow
https://stackoverflow.com/a/35169836/1216451
https://stackoverflow.com/a/34807375/1216451

Laravel 5 Class 'HTML' not found

I am attempting to use Laravel 5 but my {{ HTML::style('style.css') }} No longer works.
I have updated composer.json to include "illuminate/html": "5.*" under require. I have added 'Illuminate\Html\HtmlServiceProvider' to my providers array under app.php and I have added
'Form'=> 'Illuminate\Html\FormFacade',
'HTML'=> 'Illuminate\Html\HtmlFacade'
as well. I then ran composer updateI have restarted WAMP to make sure and it still does not work. I have also tried to use {!! HTML::style('style.css') !!} which did not work either. What else do I need to do to get this back?
Anybody who are using laravel 5.* have to use laravelcollective/html because Package illuminate/html is abandoned, you should avoid using it.
your composer.json file should contain following code in require section(as i am using laravel 5.2 it will be mentioned as 5.2)
"laravelcollective/html": "5.2.*"
run composer update
and your config/app.php should contain following code in providers array
'providers' => [
Collective\Html\HtmlServiceProvider::class,
]
and aliases should contain
'aliases' => [
'Form' => Collective\Html\FormFacade::class,
'HTML' => Collective\Html\HtmlFacade::class,
]
and please note that whatever aliase you mentioned should appear in your code as
{{HTML::linkAction('MemberController#show', 'view', array($value->id))}}
'HTML'=> 'Illuminate\Html\HtmlFacade'
should be
'Html'=> 'Illuminate\Html\HtmlFacade'
I think it's a case sensitive problem.
If you register it as 'HTML'=> 'Illuminate\Html\HtmlFacade' in app.php, you can't use it as html or Html ( then it will only work when you use HTML).
{!! Html::style( asset('public/css/artist.css')) !!}
... worked for me, but this
{{ HTML::style( asset('css/artist.css')) }}
... did not worked. But it should work. No!
Laravel is confusing me more from day to day. I try to learn this ... Notwell :D
1 follow
https://laravelcollective.com/docs/5.3/html
Begin by installing this package through Composer. Run the following from the terminal:
composer require "laravelcollective/html":"^5.3.0"
Next, add your new provider to the providers array of config/app.php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
Finally, add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
Now if you want
{{ HTML::style('css/bootstrap.min.css') }}
or
{!! HTML::style('css/bootstrap.min.css') !!}
//2 way follow.
{{ HTML::style('css/bootstrap.min.css') }}
//change to
{{ Html::style('css/bootstrap.min.css') }}
or
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
//change to
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'HTML' => Collective\Html\HtmlFacade::class,
// ...
],
for more see this video tutorial.....
https://www.youtube.com/watch?v=yl6hkoaCS6g
Add to composer.json:
a) "illuminate/html": "5.*"
b) Run Command:- composer update
Add to the app.php providers array:
a) 'Illuminate\Html\HtmlServiceProvider',
Add to the app.php aliases array:
a) 'Html' => 'Illuminate\Html\HtmlFacade',
b) 'Form' => 'Illuminate\Html\FormFacade',
Done
In the Laravel 5 "illuminate/html": "5.*" is deprecated and replaced with new dependency "laravelcollective/html": "~5.0"
Begin by installing this package through Composer. Edit your project's composer.json file to require "laravelcollective/html"
In your composer.json file update the following:
"require": {
"laravelcollective/html": "~5.0"
}
Next, update Composer from the Terminal:
composer update
Next, add your new provider to the providers array of config/app.php:
'providers' => [
// ...
'Collective\Html\HtmlServiceProvider',
// ...
],
Finally, add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
// ...
],
You can also check it here for Laravel 5
https://laravelcollective.com/docs/5.0/html
If you must not use HTML Facade, do this for simplicity:
<link rel="stylesheet" href="{!! asset('style.css') !!}">
Follow this documentation how to fix it:
https://laravelcollective.com/docs/5.4/html
For each version you change the version number to access the appropriate doc e.g
https://laravelcollective.com/docs/5.x/html
x is the version
For those who are looking to configure Laravel 5 with macros:
composer require laravelcollective/html
In /config/app.php, under "providers": App\Providers\MacroServiceProvider::class
Create MacroServiceProvider.php under /app/Providers:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class MacroServiceProvider extends ServiceProvider {
public function boot()
{
foreach (glob(base_path("resources/macros/*.macro.php")) as $filename) {
require_once($filename);
}
}
public function register()
{
//
}
}
Add any macros in the folder /resources/macros in the format *.macro.php. Note the needed $this->toHtmlString in order to escape the string:
Html::macro("something", function() {
return $this->toHtmlString("Hi there");
});
Use macros in templates, as described here.
run this cmd to laravel installed folder
composer require "laravelcollective/html":"^5.4.0"
and use with public
{!! Html::style( asset('public/css/artist.css')) !!}
Use {{ URL::asset('style.css') }} instead of {{ HTML::style('style.css') }}
the app.php entries should be:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
I did the same thing as you did: added laravelcollective in my composer, did composer update, added them in my providers and aliases but the code below did not work:
{{ HTML::image('img/picture.jpg') }}
However, I have this working for me
{{ Html::image('img/picture.jpg') }}
I think this is because this issue is case sensitive and that the class HTML vs class Html is being seen as entirely different from one another by this laravel version.
'providers' => [
Collective\Html\HtmlServiceProvider::class,
]
'aliases' => [
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
]

Resources