I use Laravel 5.2 and want to use berkayk/laravel-onesignal package, and I installed this package step by step according to Guide on github.
But when I want to use this package I get "Undefined class OneSignal", also I run this artisan command in the terminal:
php artisan config:clear
php artisan config:cache
I try this code in controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use OneSignal;
use App\Http\Requests;
class SignalController extends Controller
{
public function index()
{
OneSignal::sendNotificationToAll("Some Message");
}
}
I get this error
You should use full namespace for the facade:
\OneSignal::sendNotificationToAll("Some Message");
Or add this to the top of your class:
use OneSignal;
You should write use OneSignal top of the class underneath the namespace.
Hope this work for you!
Related
Hi I'm trying to figure out the error in my command:
php artisan db:seed
The error message is
Target class [RefbrgsTableSeeder] does not exist
However when I checked my seeder class
I have this:
use App\Refbrg;
use Illuminate\Database\Seeder;
class RefbrgsTableSeeder extends Seeder
Can I ask for an explanation why this happens.
And can you give me a hint on resolving my seeding.
Thank you in advance!
try :
composer dump-autoload
normally this happen when you use copy\paste for other seeder classes while you should use:
php artisan make:seeder MyClassSeeder
more about making seeders in:
https://laravel.com/docs/7.x/seeding#writing-seeders
I've created a new service provider to observe a model (App\Providers\EloquentEventServiceProvider.php), like so:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Staff;
use App\Oberservers\StaffObserver;
class EloquentEventServiceProvider extends ServiceProvider
{
public function boot()
{
Staff::observe(StaffObserver::class);
}
}
I've also added it to the config file (config\app.php):
return [
...
'providers' => [
...
App\Providers\EloquentEventServiceProvider::class,
...
]
...
]
The observer methods aren't working though. If I move Staff::observe(StaffObserver::class); to the AppServiceProvider class, it works just fine. So clearly this is an issue with getting my service provider to boot. I've tried php artisan config:clear, php artisan clear-compiled, composer update and composer dump but none have work. Any help is greatly aprpeciated.
your Oberservers name is wrong, as mentioned in the laravel doc observers laravel doc it should be Observers which means all of your observers should be within App\Observers instead of App\Oberservers.
so here we have 2 solutions :
1- if you want to keep the namespace App\Oberservers, you should run these 2 commands below because autoloading of the files may not work properly because we created a new folder Oberservers:
# Autoloading of files
composer dump
# Configure the cache
php artisan config:cache
2- the second solution is to just rename your actual Oberservers folder to Observers, in that way the autoloading of files will work well.
I am getting this error "Class 'App\Models\Student' not found".
Please check my codes:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Student;
class StudentController extends Controller
{
public function data(){
$stud = new Student;
$stud->name = 'Mona Lisa';
$stud->rollnumber = '001';
$stud->save();
}
}
Your error is most likely in the namespace declaration of the Student model.
check in your class file App\Models\Student.php that the namespace is correct.
namespace App\Models;
then try to run in the console:
composer dump-autoload
Change this line:
use App\Models\Student;
to:
use App\Student;
Your error suggests that class is not loaded into the controller. I am guessing from the issue that you have created a separate directory for models if you have then you need to update your composer file to include new class paths for model classes. locate autoload in you composer.json file and add an entery in classmap array as shown below
"autoload": {
"classmap": [
"database",
"app/models"
]
}
then on command line navigate to your project directory and run the following command:
composer dump-autoload
and if you didn't create new models directory then just run
composer dump-autoload
Make sure your namespace of student model
use App\Models\Student If your model is in App\Models directory
use App\Student if your model is in app directory
Finally run composer dump-autoload
check your namespace of student model
use App\Models\Student If your model is in use App\Models directory
use App\Student if your model is in app directory
then go to command line and run composer dump-autoload
Last night i upload my laravel 5.2 project in live server.
When i upload this i face this error my classroom controller does not exit. But in localhost it's working nice with no error.
My classroom controller :
namespace App\Http\Controllers\classroom;
//use App\Http\Controllers\controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Post;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Auth;
use App\Eloquent\Status;
use App\Eloquent\joinclass;
use App\Eloquent\StatusComments;
use App\Eloquent\announcement;
use Laracasts\Flash\Flash;
use DB;
use Session;
//use App\Model\classrooms;
use Illuminate\Support\Facades\Input;
use App\classroom as classroomModel;
use App\Http\Requests;
use View;
use App\User;
Why show me this errors?
This will definitely work if everything is fine and still you get this error just run following command in your terminal
cd /path_of_root_folder_where_composer_json_is_located
then run
composer dumpautoload
it will work try it.
namespace App\Http\Controllers\classroom;
use App\Http\Controllers\controller;
replace with
namespace App\Http\Controllers\Classroom;
use App\Http\Controllers\Controller;
I have located contoller in directory dashboard, how to specify correct path in routing to this controller?
I have class by path:
Class App\Http\Controllers\Dashboard\PlaceController
But I get error that this class : does not exist
Laravel uses PSR-4 namespaces, so you need to make sure controller is in correct namespace:
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
class PlaceController extends....
If namespace is correct, try to run composer dumpauto command.
Here are a example :
Laravel 5.2 :
create a directory on >> App >> Http >> Controllers >> Dashboard
create a file >>App>>Http>>Controllers>>Dashboard>> PlaceController.php
PlaceController.php
<?php
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests;
class PlaceController extends Controller
{
// write your functions
}
command line
on command line : composer dump-autoload