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
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
I have done following process for resolving the error.
-I have added "illuminate/html": "5.*" to composer.json and ran "composer update"
-I have added following to config/app.php
'Illuminate\Html\HtmlServiceProvider',
'Form' => 'Illuminate\Html\FormFacade',
'Html' => 'Illuminate\Html\HtmlFacade',
- but my whole project is not working.Not running.It seems that it is composer issue.
Please help.
If i am correct the illuminate/html package isn't supported in laravel 5 anymore. There is a community fork at laravelcollective/html, see their site for all documentation.
You could swap the illuminate package for the laravelcollective package:
Add to your composer.json:
"require": {
"laravelcollective/html": "5.1.*"
}
Add provider to the providers array of config/app.php:
'providers' => [
Collective\Html\HtmlServiceProvider::class,
],
Add two class aliases to the aliases array of config/app.php:
'aliases' => [
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
],
I have problems with setting up entrust with L5..1.4
this is what i do:
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Zizaco\Entrust\EntrustServiceProvider::class,
and this: ....
'Storage' => Illuminate\Support\Facades\Storage::class,
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
'Entrust' => Zizaco\Entrust\EntrustFacade::class,
And its not working ... crashes my whole php artisan (when i run php artisan):
[Symfony\Component\Debug\Exception\FatalErrorException]
Call to undefined method Illuminate\Foundation\Application::bindShared()
i used this to install entrust:
"zizaco/entrust": "dev-laravel-5"
and then composer update. Now EntrustServiceProvider is under vendor/zizaco/entrust/src/entrust/ ...
any ideas?
After adding
"zizaco/entrust": "dev-laravel-5"
to your composer.json file run:
composer install
Next in the config\app.php add to the providers array:
'Zizaco\Entrust\EntrustServiceProvider',
and under the aliases array add:
'Entrust' => 'Zizaco\Entrust\EntrustFacade',
next run:
php artisan entrust:migration
this will generate the Entrust migration and finally run the migrations:
php artisan migrate
you should now be on your way! For more information check out:
https://github.com/Zizaco/entrust
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,
]