Laravel 5 Class 'App\Http\Controllers\Cookie' not found - laravel-5

I am trying to create a cookie in laravel 5 with
$cookie = Cookie::make('name', 'value');
in controller and i want to attach to the view. But it shows the error
Class 'App\Http\Controllers\Cookie' not found.
How to solve this problem ?

Most Class not found are usually caused my incorrect namespace:
try
$cookie = \Cookie::make('name', 'value');
or add use Cookie; in your class like so:
<?php namespace App\Http\Controllers;
use Cookie;
UserController extends Controller{
}

Put a slash before the Cookie it will work .
Like this
$cookie = \Cookie::make('name', 'value');

cookie('cookiename','your value',time);

Related

Undefined Variable Request in Laravel 5

I am having issues it says Request is undefined same goes for DB.
public function edit(Request $request,$id) {
$name = $request->input('stud_name');
DB::update('update student set name = ? where id = ?',[$name,$id]);
echo "Record updated successfully.<br/>";
echo 'Click Here to go back.';
}
Looks like you're missing use statements that tell your script where to find these. Add
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
in your file after namespace ...

Class '...\Input' not found

I want to implement a search option on my Laravel application, but had this error:Class 'Illuminate\Support\Facades\Input' not found, I have tried to add this row at config/app like this:
'aliases' => [
....
'Input' => Illuminate\Support\Facades\Input::class,
Also at Controller I have added those rows:
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
At Route I have added
Route::any('/search',function(){
$image_tmp = $request->image;
$fileName = time() . '.'.$image_tmp->clientExtension();
$q = Input::get ( 'q' );
$book = Book::where('title','LIKE','%'.$q.'%')->get();
if(count($book) > 0)
return view('home')->withDetails($book)->withQuery ( $q );
else return view ('home')->withMessage('No Details found. Try to search again!');
});
But still it doesn't work.
Try this
config/app.php
use Request instead of Input
'aliases' => [
....
'Input' => Illuminate\Support\Facades\Request::class,
And your controller
use Illuminate\Http\Request;
and remove use Illuminate\Support\Facades\Input; top of your code
you have used the class in the controller but your route is never going to one as you are using a closure. so add Input class in your web.php file. at the top of your web.php file add
<?php
use Illuminate\Support\Facades\Input;
if you are using any latest version of laravel, the Input class no longer exists. so use Request class instead
<?php
use Illuminate\Http\Request;
you can use request() global helper too to get request values.
however i would suggest you to not use closure, rather use controller for logical operation.

Moving project online broke laravel controller

That's my route:
Route::group(['prefix' => 'admin', 'middleware'=>['auth','role:admin']], function () {
Route::get('/co2index', 'UserController#adminCo2Index');
}
This is the controller method that fails:
<?php
namespace App\Http\Controllers;
use App\Http\Impl\ReferentManager;
use App\Http\Impl\RoleManager;
use App\Http\Impl\UserManager;
use App\Http\Impl\ValidationRulesManager;
use App\Models\User;
use App\Notifications\UserActivatedNotification;
use App\Models\Vendita;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\Referent;
use App\Models\Ddt;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Session;
class UserController extends Controller
{
public function adminCo2Index()
{
$search = \Request::get('search'); //<-- we use global request to get the param of URI
$companies = User::where('name', 'like', '%' . $search . '%')->orderBy('name')
->paginate(10);
$ddts_count = DB::table('ddts')
->select('company_id', DB::raw('count(*) as total'))
->groupBy('company_id')
->get();
if ($companies && $ddts_count) {
return view('administration.co2Index')->with('companies', $companies)->with('ddts_count', $ddts_count);
} else {
return view('administration.co2Index')->with('companies', null)->with('ddts_count', null);
}
}
}
on my online server if I try to visit:
mysite.com/admin/co2index
it returns:
BadMethodCallException Method [adminCo2Index] does not exist. in
Controller.php line 82:
On localhost it works! Also, I have other methods on UserController class that work even online without any problem!
If I put 'null' on $companies or $ddts_count the correct empty view is loaded on localhost. If I do the same thing online I have still the same error!
If I put a dd('ciao') on the top of the method the error is still showed and no message on front end...
This looks very strange to me! I can't see any typos... thanks for the help!
hit this command
composer dump-autoload

DOM/PDF error - Non-static method Barryvdh\DomPDF\PDF::download() should not be called statically

My Controller is this:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade as PDF;
class PrintPDF extends Controller
{
public function print(){
$details =['title' => 'test'];
$pdf = PDF::loadView('textDoc', $details);
return $pdf::download('this.pdf');
}
}
My routes
Route::get('/print', 'PrintPDF#print');
when accessing localhost/print I get an error
Non-static method Barryvdh\DomPDF\PDF::download() should not be called
statically
I followed the install instructions on their site. I have tried to change my controller adding use PDF, instead of use Barryvdh\DomPDF\Facade as PDF; Yet the error persists
This happens because you are namespacing the wrong PDF class.
You are namespacing Barryvdh\DomPDF\PDF and try to use this class as "Facade" which is wrong.
To solve your problem
Set namespace to the facade:
use Barryvdh\DomPDF\Facade as PDF;
Function Should be like this
$details =['title' => 'test'];
$pdf = PDF::loadView('Your view path', $details);
You can download directly using download method
return $pdf->dowload('test.pdf');
or you can save in specific directory of your project
return $pdf->save('path of your directory/filename.pdf');
This worked for me....
make the function call like this
return $pdf->download('invoice.pdf');

why method post not found in Illuminate\support\facade\input

I work with laravael 5.3.9 .
In my controller I use
Illuminate\Support\Facades\Input;
But when I try to get input from a user form using method post like that :
function add(){
$fullName = Input::post('fullName' , 'test');
I get this error .
the only method that Input class has is "get" .
I dont want that in my system I want to work with method post , delete , put ....
I guess, Input::post method is not used with L5.3. Use the Request facade OR $request to get your input variable.
Try this in your controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class area_owners extends Controller
{
function add(Request $request)
{
// I assume all these input variable have same name in you FORM.
$fullName = $request->input('fullName');
$smsCode = $request->input('smsCode');
$authorizationId = $request->input('authorizationId');
$areaNumber‌​ = $request->input('areaNumber‌​');
$neigh_project_Id = $request->input('neigh_project_Id');
$area_owners = DB::table('area_owners')
->insert(['fullName'=>$fullName,
'smsCode'=>$smsCode,
'authorizationId'=>$authorizationId,
'are‌​aNumer'=>$areaNumber‌​,
'neigh_project_Id'=‌​>$neigh_project_Id])‌​;
return view('area_owners_add', ['area_owners' => $area_owners]);
}
}
Let me know if it helps.

Resources