CEO / Developer at Aeon Development Group

Member Since 2 Months Ago

Earth ;-)

Experience Points

3,540 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
Best Reply Awards
Best Reply
  • start your engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-in-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber Created with Sketch.


    Earned if you are a paying Laracasts subscriber.

  • lifer Created with Sketch.


    Earned if you have a lifetime subscription to Laracasts.

  • evangelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 5
21,460 XP
1 day ago
Activity icon

Replied to Jetstream, Fortify, Customizations And A (semi) Disaster!

I appreciate all the responses. I read the links about the components that are publishable and it was helpful. I am still uncertain of the next steps.

We needed to have an additional image as part of the user table and want to maintain the interface that the scaffolding provided, so I added a component to the Jetstream Scaffolding. It's called 'brand image' and it is basically a twin with the profile photo and used that as an example. Again, I understand this won't work long term if updating wipes out the changes

  1. created new file: vendor/laravel/jetstream/Http/Livewire/UpdateBrandInformationForm.php

  2. Import that new form into here: vendor/laravel/jetstream/stubs/inertia/resources/js/Pages/Profile

  3. Registered the component here: vendor/laravel/jetstream/src/ JetstreamServiceProvider/php

...use Laravel\Jetstream\Http\Livewire\UpdateBrandInformationForm;

... and also in the right under the one, I am mimicking Livewire::component('profile.update-profile-information-form', UpdateProfileInformationForm::class); Livewire::component('profile.update-brand-information-form', UpdateBrandInformationForm::class);

  1. the blade template, which is located in resources/views/profile/update-brand-information-form-blade.php

The question is if we want to want to add a feature to the scaffolding such as this new branding image how and where to do we make those changes outside of the vendor files where they both work with the scaffolding and are permanent and will not be deleted upon updates.

3 days ago
Activity icon

Replied to Jetstream, Fortify, Customizations And A (semi) Disaster!

the only reason I did it this way is because I was in a (hurry) and copied the profile image in the new scaffolding. i will check this out, thank you!

Activity icon

Replied to Jetstream, Fortify, Customizations And A (semi) Disaster!

i was able to get my work back at least, and now possibly need to understand better where it should go. thanks to everyone who answered.

earlier in my process I created a new trait, called hasBrandPhoto - it was stored in jetstream/src/...

I understand that was wrong with storing them there, not sure I quite understand where we place addons for the profile management outside of this area? i found the other places to add blade components for the rendering of the components, not exactly sure where to put a new trait.

Activity icon

Replied to Jetstream, Fortify, Customizations And A (semi) Disaster!

Yes, I know that we do not add or modify them in the vendor folder now, because that is the crux of my problem. As far as publishing the components and edit them in resources/vendor that is a step in the right direction, but I need more info. I don't have the information on how to do that, why, and I need a real set of documentation I can step through and make sure I am doing it correctly.

As far as livewire and alpine, I am standing my original post, that stated that I have made that choice and will stick with it. As I said, I am not complaining at all - but need more data to get up to speed.

Activity icon

Started a new Conversation Jetstream, Fortify, Customizations And A (semi) Disaster!

OK. Here was my process in succinctly:

  1. fresh install of laravel 8
  2. install jetstream with livewire stack
  3. ** using the profile photo files as an example, create a second set of all the files needed to add another photo / media to the user record. edit everywhere, and create all the files in the vendor/laravel/jetstream folder that makes this happen. create blade component for this, register it, add it to the structure. updated SQL tables.
  4. Everything has been working perfectly!
  5. I was going to use a new package to detect user agent, decided to install on CL per typical, was notified to update my version of composer
  6. ran composer update
  7. BOOOOM! It appears that all my additions and extra components, classes and parts that were added by me for the new media have been completely wiped out. The vendor folder is back to its original contents *********

I understand at this point what happened, and probably why.

The main quesion is - if we need to enhance and update the profile management experience and we are required to use a stack like livewire, with alpine, and all of those layouts are deep within a vendor folder and we are not able to make lasting changes in there that won't be killed with an update, is there some documentation on how to enhance outside of those structures - or if the documentation doesn't exist can the makers of jetstream post some?

1 week ago
Activity icon

Replied to Executing This Kind Of Query Possible?

thank you to both responses, I am very grateful!

Activity icon

Replied to Executing This Kind Of Query Possible?

this is very similar to what I wound up with!

Activity icon

Started a new Conversation Executing This Kind Of Query Possible?

I am trying to make this kind of query, but I am lost on how to do this in laravel. i know about the DB facade, but not how to structure this in there. any casts or posts that show it - please point me in their direction!!!

basically there are two pivot tables, the similar key therein is a stream id. once this runs, I will filter the array but I need to get it to run before I can filter it. this is the kind of code I would have done bfore.... not not sure what do do...

$makeItOne = "select * FROM " . 'project_stream' . " ps, " . 'stream_users' . " su WHERE ps.project_id = " . $project->id . " AND su.stream_id = ps.stream_id " ;

    $getEm = $db->Execute($makeItOne);
2 weeks ago
Activity icon

Replied to To Address Is Not Numeric Nexmo Notification

i am seeking the answer to this as well. Bump!

3 weeks ago
Activity icon

Replied to Selecting ID On Form, Gathering The Name String, And Passing To SQL Table

Thank you that did it! i undersand that it was an array, which is the return and what comes out of the query, so changing the query to ask for the first item in the array is the solution.

3 weeks ago
Activity icon

Started a new Conversation Selecting ID On Form, Gathering The Name String, And Passing To SQL Table

i have a form, selection with options. i have a numerical value of something, example of 11.

the value of the id in the table changes to 11, i will determine the value of the name string like this

$getManName = User::where('id', $managerSelection)->pluck('name');

which gets passed into the sql table. but instead of just the name, this is recorded in the table. ["manager name"]

I think it is trying to make it an array value, how can I prevent this? i dont want the [" "] characters included here.

4 weeks ago
Activity icon

Replied to This Should Be Simple.

thank you

Activity icon

Replied to This Should Be Simple.

yes is how to capture the ID reliable and then ask for that ID immediately

Activity icon

Replied to A Better Way?

Thank you so much for the reply - yes indeed, I have solved the initial problem. Also - yes I agree typically I would want to keep things in an array, this is what I was trying to figure out a way to do between two pivot tables that both had only IDs - each connected to each table with the real info I needed to parse out. Turns out I didn't need to use both pivot tables, one will do.

Activity icon

Started a new Conversation This Should Be Simple.

I just saved a new model, and the id is an autoincrement. how do I route to open the record I just made?

on the controller, and I know I need SOMETHING I just don't know what that is?

$thisticket->save(); return redirect('livestreams.index/{ SOMETHING });

ooh could is be as simple as???? return redirect('livestreams.index/{ $thisticket->id });

I know I am asking a lot of help these days, so appreciative of everyone who is reading/helping and I can't wait to be able to help the community myself as time goes on...

Activity icon

Started a new Conversation A Better Way?

I have a situation that is interesting. the project has options, and the project has users. the users have options. a user can be assigned to a project, but not see all the options in that project.

project: has many users, has many options users: belongs to many projects, has many options options: can be assigned to a project, can be assigned to a user and these are not connected at all

So I have a pivot table already telling me what options are assigned to the project, its never more than 10 so I have ten variables that contain the IDs of the options. such as $option1 = option_id

now this option ID is on the pivot table on both the option_product and option_user tables. now I will need to run a test to get all the options for the user, and then isolate only those that match on the $options1 (through) $options10 list of variables I have.

At this point, I feel like I need to reach out and just ask if there is an easier way? is there some way to connect two pivot tables together, maybe?

1 month ago
Activity icon

Replied to Attaching A Json File To Url String

thank you so much!

Activity icon

Started a new Conversation Attaching A Json File To Url String

I need to generate a url string that can feed a json file to another service that consumes it, and to generate something like this:

what is happening is an error: View [streamtickets.index?sendOut=1600628175320354347.json] not found.

this file does indeed exists and is created on a function that returns a view

if (!is_dir($destinationPath)) { mkdir($destinationPath,0777,true); } File::put($destinationPath.$file,$data); return view('streamtickets.index?sendOut='. $file);

and my routing is something that looks like this

Route::get('/lstreams', function () {
    return view('{streams}');

so can anyone tell me how to format the route so it sees the name of the new file as it should? maybe I need to concatenate the return view better, it seems like that is the problem area.

1 month ago
Activity icon

Replied to Fatal Error On Composer Update

thank you! i did this and it worked. additionally, I added the 'throwable' edit to the handler that bobbybouwmann had suggested on another post. this didn't change anything that I noticed right away but it seemed like a good idea.

Activity icon

Started a new Conversation Fatal Error On Composer Update

updating to laravel8, updated the composer.json files as suggested/required and now I have a new error:

Generating optimized autoload files

Illuminate\Foundation\ComposerScripts::postAutoloadDump @php artisan package:discover --ansi PHP Fatal error: Declaration of App\Exceptions\Handler::report(Exception $exception) must be compatible with Illuminate\Foundation\Exceptions\Handler::report(Throwable $e) in /.../app/Exceptions/Handler.php on line 8 PHP Fatal error: Uncaught ReflectionException: Class App\Exceptions\Handler does not exist in /.../vendor/laravel/framework/src/Illuminate/Container/Container.php:809 Stack trace: #0 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(809): ReflectionClass->__construct('App\Exceptions\...') #1 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(691): Illuminate\Container\Container->build('App\Exceptions\...') #2 .../vendor/laravel/framework/src/Illuminate/Foundation/Application.php(796): Illuminate\Container\Container->resolve('App\Exceptions\...', Array, false) #3 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(269): Illuminate\Foundation\Application->resolve('App\Exceptions\...', Array, false) #4 .../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 811 Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255

1 month ago
Activity icon

Started a new Conversation Changing Over To 8.0, Some Adjustments Needed

how can I fast track the learning what it takes to solve this:

RuntimeException In order to use the Auth::routes() method, please install the laravel/ui package.

I don't want to use the laravel package since I am using jetstream. can anyone point me in the direction of how to get up to speed on how jetstream replaces the auth::routes() method?

1 month ago
Activity icon

Started a new Conversation Laravel 8, Jetstream And / Or Passport...

Is it an either-or scenario - one would pick Jetstream or one would pick passport? Can you install both? The scenario is that I was using a solution from 7x and want to update. The old process was to install laravel, then install UI and then components, then install passport. So in the new workflow, as I have installed a fresh version of laravel and also jetstream, would installing passport still work?

1 month ago
Activity icon


thank you!

Activity icon

Started a new Conversation LEFT JOIN ERROR

just want to return a list of streams that have been assigned to users in a many to many. the pivot table is working ok. why does this code:

$streams = DB::table('streams')->pluck('stream_name', 'id') ->leftJoin('streams', '', '=', 'streams.user_id') ->get();

produce this error: Method Illuminate\Support\Collection::leftJoin does not exist.

do I need to add something to make this work?

1 month ago
Activity icon

Replied to Migration Applying Successfully But Error On Migrate:reset

I have a similar issue, but the composer dump-autoload does not repair it. Any ideas?

2 months ago
Activity icon

Commented on File Storage And Custom Avatars

I added the banner background, writes the name of the image to the new field in the DB perfectly. just doesn't show up / showing a broken link. I added the storage link to the new folder for banners - I added the additional folder to the config/ filesystems file and i checked, the new 'banners' folder is public. any idea how I can shake this up a little so the images do appear? oh! maybe permissions? - edit. nope. the permissions are exactly the same as avatars and those work! *** edit! i just needed to make sure to create a public function such as getBannerAttribute.

2 months ago
Activity icon

Replied to Sanitize Html Field

If you want to lower restrictions and allow and HTML a few characters in, it is just going to complicate matters. My solution only works if you do not allow that at all. I have written a series of scripts that convert field contents into both HTML for web purposes and also stript the contents until they contain no HTML for use in special application client uses, and what I have found is that any threat will magnify in the wrong hands. If this is the case and you cannot write your own model with a few rules, and the rules are bound to change and then get more complex as time goes on - it would be time to reach for a package that has more development momentum to it.

Activity icon

Replied to Sanitize Html Field

Why? I am answering the original posting with my solution here, I don't have a question about how to do it, I already know how to handle it.

2 months ago
Activity icon

Replied to How Can I Make An Elastic Search In Laravel Eloquent Relation.

I am very new and may not understand the question... I hope my answer is helpful. I have a suggestion and an additional question. from what I understand you want to keep the exact value that was placed into the search string? If space is not an issue, why not create a table for search field entries. You can store the IP address if you have it, the user name if it applies, and timestamp of the search request and then the actual search string. drop all these values into a DB entry before you query them, and then you will be able to grab those values through a model for them.

It looks like the search should be returning the products whose name is like the original search string, with an id that matches the list id, and the user is authenticated. the whereHas clause is making sure that the product name matches those characteristics. from this, it looks like your query should work with the original need to match on the $searchstring so can you explain what it is returning that isn't working?

2 months ago
Activity icon

Replied to Sanitize Html Field

Hello! I am (fairly) new to Laravel and this is my first post! I've been lurking and looking at all the free content and decided to go ahead and get a subscription because this is too informative not to!

In the past I had the same need and handled it this way (very interested to learn a better, more modern approach). I have some apps written in javascript that eventually need to write to a database - they call a php script that contains a small function called sanitize_string:

function sanitize_string($string) { $string = preg_replace('/ +/', ' ', $string); return preg_replace("/[<>]/", '_', $string); }

Pulling data (in my example from URL, yours may vary) $first_name = $_GET["first_name"];

Sanitize before passing to DB: $first_name = db_prepare_input(sanitize_string($first_name));

Then run the insert to DB per typical.

I think this could be converted to a reusable script would handle a variable as an input. In my case it was only 4 fields, so I didn't bother to write that. In Laravel, I am surmising this would happen on the controller that is used to handle the write / store functions.