I tried to save an image which comes form POST request using laravel. but it gives me the following error.
ReflectionException in Container.php line 741: Class image does not exist
I did the following things :
enabling the fileinfo extension in php.ini file
and composer dumpautoload
but nothing is work I followed the guide line here
I am using laravel 5.1
my code is as bellow
public function saveImage(){
Image::make(Input::file('files')->getRealPath())
->resize(870, null, true, false)
->save('foo.jpg');
}
Did you include the class, in the top of the document?
use Intervention\Image\ImageManagerStatic as Image;
I managed to fix that by adding the following to the config/app.php
'providers' => [
Intervention\Image\ImageServiceProvider::class
],
'aliases' => [
'Image' => Intervention\Image\Facades\Image::class
],
Related
I did a Laravel 5.5.43 installation this morning with the following Composer command:
composer create-project laravel/laravel project-name
I then ran the following command in the project folder to install Laravel Collective:
composer require "laravelcollective/html":"^5.4.0"
I then added the following under providers in config/app.php:
Collective\Html\HtmlServiceProvider::class,
And I added the following under aliases in config/app.php:
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
After that, I wanted to create custom form components, so I ran the following Artisan command:
php artisan make:provider FormServiceProvider
And in that new provider file, I added the following line to the boot method:
Form::component('customText', 'components.form.text', ['name', 'value' => null, 'attributes' => []]);
Lastly, I added the following to providers in config/app.php:
App\Providers\FormServiceProvider::class,
When I do that though and refresh the Laravel instance from the browser, I get the following error:
Class 'App\Providers\Form' not found
However, if I add the following at the top of the FormServiceProvider.php file, then it works:
use Collective\Html\FormFacade AS Form;
I understand the concept of namespaces and why that makes the Form::component method in the boot method in the file properly work, but what I don't get is why I need to add that use line to the file at all.
Isn't the 'Form' => Collective\Html\FormFacade::class, line in the aliases array in the app.php file supposed to do that for me so I don't need to add the use line to the FormServiceProvider.php at all? What am I missing / doing wrong / not understanding?
Thank you.
I probably should just delete this question, but the simple answer was to add the following at the top of the FormServiceProvider.php file:
use Form;
Thanks.
Run below command:
php artisan config:cache
php artisan cache:clear
Encountered the following error in My Laravel app:
FatalErrorException in CollaboPDFController.php line 14: Class 'PDF' not found
This is my CollaboPDFController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use PDF;
class CollaboPDFController extends Controller
{
public function getPDF(){
$pdf = PDF::loadView('customer.customer'); //line 14
return $pdf->download('customer.customer');
}
//
}
How I can fix this?
You are using the wrong import. To use the PDF you want (probably laravel-dompdf) use:
use Barryvdh\DomPDF\Facade as PDF;
If you put 'PDF' => Barryvdh\DomPDF\Facade::class, in your config/app.php you could also use:
use \PDF;
or
\PDF::loadView('customer.customer');
First you have to require DOMPDF package
Step 1 :
composer require barryvdh/laravel-dompdf
Step 2 : In ..\config\app.php
'providers' => [
.....
Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
.....
'PDF' => Barryvdh\DomPDF\Facade::class,
]
Step 3 :
use \PDF;
Step 4 :
$pdf = PDF::loadView('pdf.report');
return $pdf->stream('report.pdf', array('Attachment' => 0));
You can run following commands after installing dompdf and set service provider and aliases in this file config/app.php
php artisan cache:clear and php artisan config:cache
Run the below command
composer require barryvdh/laravel-dompdf
In my case, I tried some of the examples above, but nothing worked.
However, I browsed the directory of the package located here:
project-folder>vendor>barryvdh>laravel-dompdf>src>Facade>Pdf.php
and I realized that the PDF alias created in the file >> app.php does not use the correct class.
So replace:
'aliases' => [
.....
'PDF' => Barryvdh\DomPDF\Facade::class,
]
by:
'aliases' => [
.....
'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,
]
I hope this will help you.
finally got the solutions actually it was My domPDF installation problem I find out it this way
php artisan cache:clear
// and
php artisan config:cache
and install domPDF again
this is problem with cache config.php within bootstrap folder.
shared hosting does not show full path of your [project folder]in shared hosting and if you want clear cache , you have to purchase their plugins. by the given solution you have no need to purchase any plugin or no need to clear / config cache of laravel 5.6 or more.
hit the URl in your browser it will give you error log. now oprn your error log and copy the path from the error log.
change all file paths in config.php of [your project folder ]/bootstrap/cache, [your project folder ]\bootstrap\cache or [your project folder ]* etc by the full path copied from error log like /mnt/stor2-wc1-dfw1/411797/622471/[yourdomain]/web/content/[your project folder ]
I am trying to create an xml file using Orchestral/parser
https://github.com/orchestral/parser
I correctly installed it and called it like this in my Controller:
use Orchestra\Parser\Xml\Facade as XmlParser;
...
class Product extends Controller
{
public function createProduct()
{
$xml = XmlParser::load("test.xml");
$xmlR = $xml->parse([
'id' => ['uses' => 'xmlR.id'],
]);
}
}
But I get following error message:
ReflectionException in Container.php line 741: Class
orchestra.parser.xml does not exist
Thus I do not really understand what load means(in my case load("test.xml").
Did you try to refresh the autoload with command: composer dump-autoload
Your error clearly points that you did not set up the package in your config/app.php file (by listing the provider for the Orchestral XML Parser).
To resolve it, do add Orchestra\Parser\XmlServiceProvider::class to the list of providers in your config/app.php file as illustrated below:
'providers' => [
// Other Laravel service providers
Orchestra\Parser\XmlServiceProvider::class,
],
clearing the cache fixed my problem:
php artisan cache:clear
php artisan config:cache
Im am a beginner in Laravel, running version 5.2.16. I have been using PHP for quite some time but i have to get used to the MVC structure.
I have successfully added the optional dependancy for Html and Form, and they work.
I am trying to add a view where a client can register to my site, this view includes various forms. Now, when i try to route the view (register.blade.php) to the controller (RegisterController.php) I keep getting errors.
I suspect that I use the namespaces wrong, or that i doesn't "Use" the right things.
routes.php:
Route::get('register', 'RegisterController#showRegister');
RegisterController.php:
<?php
namespace App\Http\Controllers;
class RegisterController extends Controller {
public function showRegister()
{
return view('register');
}
}
In my config/app.php file i have added: (Should this be Illuminate instead of Collective?)
'providers' => [
...
Collective\Html\HtmlServiceProvider::class,
'aliases' => [
...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
After i have made these changes i run:
$ composer update
$ php artisan cache:clear
$ php artisan route:clear
However, this still gives med the error:
Fatal error: Class 'Form' not found (View: /Applications/MAMP/htdocs/myProject/resources/views/register.blade.php)
Any ideas?
My files are setup as this
Within Laravel versions < 5.0 FormFacade is already within your app/config/app.php but in Laravel versions > 5 you need to manually place the third party Facades like as
Begin by installing this package through Composer. Edit your project's composer.json file to require laravelcollective/html.
"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',
// ...
],
Docs
I need to resize pictures in my laravel 5 project and I need the intervention/image package. So I ran composer update, than composer require intervention/image and I get this error:
FatalErrorException in ProviderRepository.php line 146:
Class 'Intervention\Image\ImageServiceProvider' not found
...which is very strange because I can see the Intervention package in my vendor folder
At the top of the file I have use Intervention\Image\Image;
I've done this 3 or 4 times today and I still have the problem.
How can I make this package work ?
Adding 'Intervention\\Image\\' => array($vendorDir . '/intervention/image/src/Intervention/Image'), in autoload_psr4.php solved the problem.
Take a look at Class 'Intervention\Image\Image Service Provider' not found [solved].
Add the following to your config/app.php:
'providers' array-
'Intervention\Image\ImageServiceProvider',
and on 'aliases' further down
'Image' => 'Intervention\Image\Facades\Image'
In your controller you can then put the following:
use Intervention\Image\Facades\Image;
You can then make calls to Image:: methods, for example:
Image::make($request->file('image'))->resize(300, null, function ($constraint) {
$constraint->aspectRatio();