hollyit

hollyit

Member Since 2 Years Ago

Experience Points
16,590
Total
Experience

3,410 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
79
Lessons
Completed
Best Reply Awards
14
Best Reply
Awards
  • start-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-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-token Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer-token Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • lara-evanghelist 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 4
16,590 XP
Dec
11
3 days ago
Activity icon

Replied to Laravel - Vue, No Hot Reload

If you're running HMR inside of homestead, you need to set "host" in HMROptions to the hostname you use to access the site. Remember, you are inside a virtual machine. Localhost in there means the VM, not your host computer, so when you load it in your browser on localhost, it's looking for the dev server to be running on your host PC, not inside of Homestead/VM.

Also, best to use the {{ mix() }} helper to specify your file locations. That way it automatically updates depending on how Mix built the files.

Activity icon

Replied to Image And Video Processing Service

@zefex The main site is a Drupal powered site. The video stuff is all NodeJS. When a staff member uploads a video, it's done on a post form in Drupal with a IFrame uploader. It creates a manifest and session to the NodeJS server, the upload goes straight to the Node server and then returns the status code. It also does other things at that point, like generate a screen grab and give the option to randomly select other ones. Once that post is saved, Drupal uses RestAPI to tell the NodeJS/Encoding server to process all the video formats. Once done, it pings Drupal back with the status (or failure) and which video hosting servers the actual media files went to. Also, using NodeJS let me put in things like real time encoding progress monitoring.

It's been running non-stop since 2012 with the only thing done to it is upgrades to FFMPEG and some updates to the code base for newer versions of Node and the modules it uses. It was originally written in Node 0.8.7 to give an idea how long it's been going.

Dec
09
5 days ago
Activity icon

Replied to Image And Video Processing Service

Best to keep the video encoding and website separate. I'm the developer for a rather large video blog and we encode tons of videos a day on a smaller VPS using FFMPEG and a custom node server/manager to handle everything. Of course serving videos of any decent quality is going to quickly add to the bandwidth usage. Our encoding server actually transmits the transcoded files out to our hosting servers.

Nov
21
3 weeks ago
Activity icon

Replied to What Is A Good Size For A Vue Single App File ?

You can also lazy load components, libraries or anything. I would also look to see of the UI package you are using allows you to selectively import only the components you need. People put entire libraries into their projects but maybe use only 50% of what that library actually offers, so it's just wasted bandwidth.

For the initial load, if it's big what I usually end up doing is incorporating some kind of loading indicator into the actual HTML page, then load the actual app in foot javascript. That way they get an instance feedback that the app is loading, or at least doing something.

Nov
18
3 weeks ago
Activity icon

Replied to What Is A Good Size For A Vue Single App File ?

You can always implement lazy loading to break things up further. I do this in most of my projects, and try to group the chunks into something sensible.

https://router.vuejs.org/guide/advanced/lazy-loading.html

Nov
16
4 weeks ago
Activity icon

Awarded Best Reply on How To Make Vendor Folder As Read-only In PHPStorm

Right click on vendor and go to Mark directory as and select excluded. You can also check how directories are set in PHPStorm going into settings->directories.

Nov
15
4 weeks ago
Activity icon

Replied to How To Make Vendor Folder As Read-only In PHPStorm

Right click on vendor and go to Mark directory as and select excluded. You can also check how directories are set in PHPStorm going into settings->directories.

Activity icon

Replied to Using V-model With Nested Components In Vue

Easiest way is using computed properties. You can't directly mutate a property, which is what you're doing now with "value". Instead do something like:

computed: {
    editorValue: {
        get() {
            return this.value
                },

               set(val){
                   this.$emit('input', val)
               }
        }

}

Then your vue-editor should have v-model="editorValue"

Nov
12
1 month ago
Activity icon

Replied to How To Debuge Php Packages

Use XDebug and set breakpoints. You can inspect variables and all kinds of other stuff.

Nov
11
1 month ago
Activity icon

Replied to Accessing .tag In PHP Variable

Do a dd($dropbox_file) and look at the output in the browser to see exactly what you're getting in that variable.

Activity icon

Replied to Somethings Wrong With A Fresh Laravel 6 Terminal Outputs

FYI symfony/console 4.3.7 was released today which appears to fix this issue. I just tested it on my Win10 running CygWin and it's fine (wasn't before 4.3.7). So doing a composer update or composer update symfony/console should get you back to normal. I know it had been driving me crazy since L6.1!

Activity icon

Replied to Allow CORS In Laravel

Try the Spatie cors package. I use it regularly and always works fine.

https://github.com/spatie/laravel-cors

Nov
01
1 month ago
Activity icon

Awarded Best Reply on Looking For A Good Vue DatePicker Plugin

This is one of the most popular ones for Vue:

https://vcalendar.io/

But if you want extra data, like prices, etc. for each date, then I would only use a single data calendar (you can do that with v-calendar) and do a repeater field, where you have date, time (if needed), price, etc. Then add buttons to delete an item and add an item. Much easier to do and much better user experience, as you're doing a basic form. You can even use input type="date" and let the users use the calendar in their browser.

Oct
31
1 month ago
Activity icon

Replied to Vue Newbie Having Trouble

Move your data function from your message component and put it in the main component (where your button is mounted).

In your message component add a message prop:

props: ['message']

In your blade template <example-component :message="message"></example-component>

I suggest reading about props (and events) in Vue to understand how everything communicates. Without knowing that, you won't be able to get much done, as they are the backbone of a Vue app.

Activity icon

Replied to Looking For A Good Vue DatePicker Plugin

This is one of the most popular ones for Vue:

https://vcalendar.io/

But if you want extra data, like prices, etc. for each date, then I would only use a single data calendar (you can do that with v-calendar) and do a repeater field, where you have date, time (if needed), price, etc. Then add buttons to delete an item and add an item. Much easier to do and much better user experience, as you're doing a basic form. You can even use input type="date" and let the users use the calendar in their browser.

Oct
30
1 month ago
Activity icon

Awarded Best Reply on I Am Trying To Embed A Video On A Page But The Video Is Not Playing

I've never used the Vue VideoJS component, but have used VideoJS for years. My guess is that it's showing that because the component is loading before the data from your service. Try putting a v-if="videoOptions.sources[0].src" on the and see if that corrects it. That will force the video player to actually render only after you have a video source.

Activity icon

Replied to I Am Trying To Embed A Video On A Page But The Video Is Not Playing

I've never used the Vue VideoJS component, but have used VideoJS for years. My guess is that it's showing that because the component is loading before the data from your service. Try putting a v-if="videoOptions.sources[0].src" on the and see if that corrects it. That will force the video player to actually render only after you have a video source.

Activity icon

Replied to Package Class Not Found - In Production

Drop your slash in "QuickPay" You should actually be getting composer errors with it as it is now, since the \ is escaping out the double quote.

Activity icon

Replied to Laravel Vue Component Method Not Firing

First I would try changing it from a link to something like a span, just to see if that works. If it does, then something in your overall page is blocking link clicks. If that doesn't do the trick, right click over the element and select to inspect it in dev tools, just to make sure some CSS isn't lifting a lower element over it (yes that happens and has bit me in the butt more than once).

If none of that works, the only other thing I can think is trying to do a native bind (v-on:click.native). You can't pass the tab into the callback for that, since it's like a regular old Javascript call back, but that will at least tell you if it's in Vue or something else.

Sep
30
2 months ago
Activity icon

Replied to Adding V-model To Non-input Custom Component In Vue?

You can use v-model on anything. All it is is syntactic sugar for :value and @input. Just add a watcher to interval and then do a this.$emit('input', val).

Sep
25
2 months ago
Activity icon

Replied to Net::ERR_INSECURE_RESPONSE

If the certificate was issued using SHA-1, it will trigger this error in Chrome. Only thing they can do is update the certificate to something more secure. SHA-1 certificates stopped being issued in 2016.

Sep
24
2 months ago
Activity icon

Replied to Youtube API Data Foreach

Calling to the YouTube api like that is going to slow things down. You also risk rate limits and getting blocked. You should cache everything from the API and refresh it every so often. Even if you can live with the delay in rendering that page, if you are putting this on a live site, then you will face huge problems down the road.

Sep
17
2 months ago
Activity icon

Replied to Vue Search Select With 16k + Options

Second @ekrist1 with multiselect. They even have an example of what you are wanting to do.

https://vue-multiselect.js.org/#sub-asynchronous-select

Sep
10
3 months ago
Activity icon

Replied to Understanding Const Inside And Outside Of Vue Component

Using your constant example, change it from arrow notation to a full function:

const titleTaken = function (value, component){How do I access my returned data}

Now inside of the function you can access this, which is actually the component.

Sep
08
3 months ago
Activity icon

Replied to Setting Up A Laravel Dev Machine On Windows 10 With WSL (Windows Subsystem For Linux) Enabled

How are you finding performance under WSL? Last couple times I tried it, the IO performance issues just hurt. I was noticing build times on some Vue stuff taking 4-5 times longer than just doing it straight on Windows. Even just doing straight Laravel stuff I saw a big slowdown from my regular Windows (using Neard) flow. One app that would take 80-100ms to respond on Windows took over 500ms to respond on WSL.

I would really love to be able to switch totally to WSL, but right now am holding out for WSL2. The early reports on it are really promising.

Aug
31
3 months ago
Activity icon

Replied to Get Old Model Instance And Values When Updating.

Hook into the saved event (not updated) and then do a $model->getChanges(). That will give you an arrray of what changed (key=>old_value). You need to do it on the saved event because after Eloquent calls that event, a syncChanges() is called (as opposed to an updated event, where syncChanges() is called before the event).

Aug
30
3 months ago
Activity icon

Replied to Remove HTML From JSON Object

That site is not a true API. They are a scrapping service, that just parses out HTML code and tries to come up with an API. There are enormous problems basing anything off of that service. The two biggies:

  1. You could be violating the source sites terms of service, hence opening yourself to legal jeopardy

  2. If the original site does a redesign, or even just change a bit of HTML, well your API is now broken.

That apis.is site is actually opened source and you can view their code, including the endpoint for the flight here:

https://github.com/apis-is/apis/blob/master/endpoints/flight/index.js

Just because they do some DOM walking and through it in a JSON format doesn't make it an API, same way as if I take some wheels off a grocery cart and put them on a wood box, it doesn't make a car. Your best bet would be to either look for a true API, or write your own DOM parser from that site (though issue 1 above will remain). You can use PHP's built in DOM parsing classes, or a 3rd party like Symfony's DOMCrawler package.

Aug
23
3 months ago
Activity icon

Replied to Stripe Webhook Route In Api.php Or Web.php And Exclude Csrf

The only place you might have a problem is with Throttle, depending on how many webhooks you're listening too. Actually I started sometime back creating an entire webhooks route. I just create the group in my RouteServiceProvider and load a webhooks.php from /routes. I don't run any middleware on it by default, just adding what I need for each specific webhook (ie: webhooks/stripe gets the Stripe signature check MW). There's just no need for sessions or all the cookie stuff to run on your webhook routes.

Aug
07
4 months ago
Activity icon

Replied to Where Do Developers Hangout Usually.

The Laravel subreddit is actually pretty decent (one of the better ones out there). Stay away from the Facebook Laravel Developers groups, unless you want a real laugh. The questions are horrible.

By far the best place I've found is right here. Great community and people willing to help instead of sling mud.

Aug
05
4 months ago
Activity icon

Replied to Composer Install Problem

In all honesty, you end up fighting XAMPP more than actually working. I suggest grabbing Neard. Much easier to use and much more robust. You would have to download the PHP version you want (they have simple directions on the site). Enabling PHP extensions is a simple matter of clicking the icon on your try and enabling the extensions.

https://neard.io/

Activity icon

Replied to How To Use A Database On A Remote Server?

MySQL isn't just by username, but by username and host. Instead of 'user'@'localhost', you need to change localhost to the hostname or IP you are connecting from (ie: where Laravel is running) and add the grants to that user.

https://dev.mysql.com/doc/refman/5.5/en/create-user.html

Jul
23
4 months ago
Activity icon

Replied to Laravel Mix/webpack With Scripts On Specific Pages?

Instead of going through all that, why not just lazy load them through the main app.js file? It's a lot easier to maintain and Webpack/Mix handles all the headaches for you.

https://webpack.js.org/guides/lazy-loading/

Activity icon

Replied to Remove Illuminate\Http\UploadedFile From Request Object After Asynchronous File Upload

Sounds like the problem is actually in your Vue component. My guess is the file field isn't being cleared out. Unless you got some package or trying to do something really funky with Laravel, it should never know about other requests. That's the stateless nature of PHP. One request ends and all variables, data, etc., are gone.

EDIT: Best way to check is watch the network tab in your browser dev tools when doing the request and see exactly what is being sent to the server.

Jul
12
5 months ago
Activity icon

Replied to Generate Unique Payment Reference Number

Safest bet would be a separate table to track the transition and use the ID of that table as your transaction_id. You could also use something like UUID (Str::uuid() in Laravel 5.6+), but any randomly generate string does come with an inherit risk of collision, so it's always best to wrap it in a loop to make sure that ID doesn't exist.

Activity icon

Replied to Drag And Drop Sorting

Debounce limits actions to only happen once every X milliseconds. If you do an update, then you set a debounce to say 250ms (1/4 second). If no other updates happen in that time, it sends the ajax call. If another one does happen, then the timer gets reset and it waits another 250ms. There's debounce libraries for JQuery.

Another problem with your implementation as it stands is that you're assuming that calls will be processed on the server in the order they were sent by the browser. There's never a guarantee of that using stateless communications like HTTP/Ajax. Packets can get bounced, a process handling the first request could be a bit slower than the one handling the second, etc. If you keep it as is, then at least put some kind of UI blocker in there to prevent another call from being made too quickly (or before the previous one is complete).

Jul
11
5 months ago
Activity icon

Replied to Drag And Drop Sorting

@mstrauss is correct. You need to give each item an id to use serialize (or toArray), or use some other attribute and set the attribute option to the name of that attribute.

I also suggest not sending an update to the server on each update in sortable. That can become a UX nightmare. Either put a submit button in, or use a debounce function.

Activity icon

Replied to Error Handling For NGINX BADGATEWAY

You don't get great error handling using things like file_get_contents. You can try wrapping it in an exception block, but it's a lot better to use a library like Guzzle, where you get the actual HTTP error and can even set things like timeouts. That way if the remote server is bogged down and slow responding, your server doesn't start bottlenecking.

Jul
10
5 months ago
Activity icon

Replied to Sql Query Too Slow

You need to index the columns you're going to be querying. If you're using MySQL, I suggest taking some time and learning about "mysql explain" to help identify bottle necks and other things like index order. Another issue that can creep up with larger database is the need to adjust some parameters in the server itself. There's some scripts out there like Tuning Primer that can help identify adjustments to make. As a rule of thumb I keep everything tuned to rather conservative numbers on my dev machine, then get more liberal in production.

Jul
08
5 months ago
Activity icon

Replied to PhpStorm - Laravel

Make sure you've run npm/yarn install to install all the dependencies. Also make sure you have Javascript and Node integration enabled in PHPStorm settings.

Jul
04
5 months ago
Activity icon

Replied to How Can I Have Custom Rule In A Pipe?

You would have to write an extension. It's in the docs.

https://laravel.com/docs/5.8/validation#using-extensions

Jul
03
5 months ago
Activity icon

Replied to How Html Developer Can Work With Live Site?

IMHO this is a loaded scenario. I would find out exactly what knowledge they have in web design. I had a client do the same thing to me a couple of years ago for their redesign. In the end it cost them about 4 times the cost for the redesign and the only thing the original designer had that we used was the logo. I would at least make sure they are up to date on HTML5, CSS3 and responsive design.

Jun
28
5 months ago
Activity icon

Replied to PhpStorm Configuration

@AZURINSPIRE - Totally forgot about the colors for highlighting elements. I got rid of those ages ago. I just use the lines that connect them. Makes it much easier IMHO.

Jun
27
5 months ago
Activity icon

Replied to Mix Is Compiling To Empty Js File

Node and NPM can be a pain just over mounted shares. When going from Windows->Nix it's a lot worse. VagrantWinNFSd just doesn't like the huge number of files from things like node_modules.

For Windows I suggest dropping Homestead. Instead use this:

https://neard.io/

It's a portable WAMP server with tons of features that just works. If you need something that doesn't run on WIndows, like Redis, then just spin up a Docker container for that service.

On the node side of things, Neard comes with it (you don't have to use it and instead can install your own version). I'm working on a client project right now that the admin section is a huge SPA. I've got a bunch of dynamic imports and built in a huge monorepo (Yarn workspaces + Lerna). It builds fast using just Windows and even HMR works great.

Activity icon

Replied to PhpStorm Configuration

Those colors are diff colors for comparison with the current VCS branch you're on. You can find them in settings under Editor > Color Scheme > Diff & Merge

Other gutter items are under Editor > general > gutter icons

Jun
24
5 months ago
Activity icon

Replied to Develop On Windows 10, But Not When Offline

It's been a few years since I last used Acrylic and one of the reasons for it was exactly this. It would not work if you weren't connected to the internet, given that it works by setting the DNS resolver address of the active connection. Even if you try fooling it with a loopback interface, it wouldn't work. Not sure if that's still the case, but something to consider.

If this is the case, the only other option is to go from a virtual environment (docker, vagrant, etc.), since those do create actual networks that you can set the resolver on. It's that or just edit your windows hosts file to point whatever domain you're working on to 127.0.0.1

Activity icon

Replied to Dominate Vue Router With Laravel Router

What exactly is it doing? Are you getting 404 or some other message? As long as you have a route('/admin') in there, it should match it. Actually looking at your Route up there, order shouldn't even matter as /admin should not match your /admin/{all} since {all} would be required.

You might want to try testing the routes in incognito or clearing the browser cache also, as if something sent a 301 redirect it would be cached. That's one little thing that has caught me in the past.

Jun
21
5 months ago
Activity icon

Replied to Dominate Vue Router With Laravel Router

Make sure your new route is above your /admin/{all} route in the routes file. Laravel picks the first match, so order matters.

Jun
20
5 months ago
Activity icon

Replied to Vue - Parse JSON String

@OLIVERBUSK - My suggestion would be to look at how other Vue table/datatable components work. Bootstrap-Vue is a very common one. If you look in the data() on this page, you'll see the items data that is structured in a row->column structure.

The easiest way to think of it is to vision how the HTML needs to look in the end and model your data similar to that. Tables have rows. Rows have children. So you need to walk down the nesting levels to get to each item. The table is your overall data structure. Inside that table you have multiple rows (), which is your next level down. Inside each row you have multiple columns (), which is the next level.

Jun
19
5 months ago
Activity icon

Replied to Return Html Code To View With Javascript Have Repeat Issue

Does your response have an element with the id of content? Sounds like you're adding it into the outer #content div (or whatever element). You can try changing $('#content').empty().html(data); to $('#content').replaceWith(data). One thing to keep in mind on that is if you've done any programmatic binding on any elements within that new HTML (ie: $("#submit").click()), you'll have to rebind them.

Activity icon

Replied to Vuelidate And @blur Not Working Correctly.

You can't return out of a promise, you must resolve or reject. Change your return true/false to resolve(true/false).