neilherbertuk

ICT Systems Development Engineer at Keele University

Experience

22,500

13 Best Reply Awards

  • Member Since 2 Years Ago
  • 202 Lessons Completed
  • 0 Favorites

22nd November, 2017

neilherbertuk left a reply on Unable To Upload File On Server : Failed To Open Stream: Is A Directory • 1 day ago

As I said in my reply, change your \ to / in your file paths.

If you file path is /var/www/project/folder/file.pdf, your script is trying to make that as a folder. Which will then fail to upload because you are trying to save it over something that already exists.

neilherbertuk left a reply on Unable To Upload File On Server : Failed To Open Stream: Is A Directory • 1 day ago

The directions of your slashes in file paths matter on Linux hosts. You are using a combination of both forward and back slashes. I'm going to guess your Dev environment is a Windows box? As it tends not matter on windows. Change your back slashes to forward slashes and see where that gets you.

Neil

20th November, 2017

neilherbertuk left a reply on ERR_TOO_MANY_REDIRECTS In My Laravel • 2 days ago

Hi amk,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

The first place to start would be your servers error logs and your laravel.log file to see if there is anything obvious.

Neil

neilherbertuk left a reply on I Upgraded The Laravel Of My Lumen Project From 5.2 To 5.4 And My Route Is No More Working • 3 days ago

To upgrade Lumen, you need to follow the Laravel upgrade guides when changing between versions.

https://lumen.laravel.com/docs/5.4/upgrade

You will need to make sure you run through the upgrade to 5.3 and then 5.4

https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0 And https://laravel.com/docs/5.4/upgrade#upgrade-5.4.0

There are a lot of breaking changes between versions.. There are several changes to routing listed on these upgrade guides. I can't see this listed but the folder structure between 5.2 and 5.3 has changed, routes are now in the routes folder, under different files web.php and api.php

https://mattstauffer.com/blog/routing-changes-in-laravel-5-3/

Hopefully moving your routes into the appropriate file might help?

12th November, 2017

neilherbertuk left a reply on One App Or Auth To Rule Them All? • 1 week ago

Well having a centralised authentication system and your apps separate is better all round; firstly your apps are more secure from a point of view that they don't store any passwords! Secondly every application is silo'd so if one gets compromised no other system or datasets are at risk.

If you go for a single "mega-app", if someone gets in, everything is likely to be at risk. As you've said, you would have some complex roles and permissions management.

I'm guessing from your link that you also work at a university in the UK? It might be worth looking at the JISC UK Federation as you would be able to allow users from other institutions to login to your application using their institutes SAML service. https://www.ukfederation.org.uk

neilherbertuk left a reply on One App Or Auth To Rule Them All? • 1 week ago

Hi ohffs,

This is where you want to take a look at SAML2 (Security Assertion Markup Language) or SSO (Single Sign On). There are plenty of solutions out there that can do this for you, and even integrate with LDAP or active directory (AD).

Using SAML, you would setup an Identify Provider (IdP) which would deal with all of your authentication. Each application would be a Service Provider (SP). Your IdP would simply replace the authentication mechanism, the SP would still have to track user accounts. Each SP would still be able to deal with its own roles and permissions locally. Imagine having a user record but no password field on the SP. The SP would have its own logic for what to do when a user it hasn't seen before gets logged in. Such as creating a user record for it but having to have an admin assign roles before they can do anything, or you could have your roles and permissions assigned through your organisation's AD or LDAP service and have them managed centrally.

There are many pre-existing solutions out there which are open source and free, so no need to reinvent the wheel.

A widely used option would be Shibboleth - https://www.shibboleth.net - this is widely used within the education sector. I'm pretty sure this is not written in php.

SimpleSAMLphp may be a good option - https://simplesamlphp.org

There are several other packages out there on packagist, however these are not supported by large organisations so I wouldn't be able to vouch for their integrity. - https://packagist.org/?q=saml&p=0

I am using a combination of 2 packages that are available on packagist. However, I have forked and further developed one that I am using as an IdP, I'm also only using the IdP as a local development replacement for my organisation's SSO solution.

Hope this helps, happy to answer any further questions you might have.

Neil

3rd October, 2017

neilherbertuk left a reply on Small View Problem With Laravel 5.5 • 1 month ago

Your we route is /company, not /company/index

29th September, 2017

neilherbertuk left a reply on Add Video • 1 month ago

@The_blues please take a look at the posting guidelines I mentioned in my first reply. It's extremely hard to follow code that isn't formatted correctly. Please use markdown to format it.

neilherbertuk left a reply on Add Video • 1 month ago

As you've not answered my questions I can only guess and assume what you are trying to do.

I'm assuming you need to collect data from an end-user. You can do this with a html form and access the data submitted from the request which is detailed here on the Official Laravel Docs https://laravel.com/docs/5.5/requests#retrieving-input

Assuming you have an eloquent model, you should checkout this page https://laravel.com/docs/5.5/eloquent#inserting-and-updating-models which covers inserting and updating database entries.

Neil

neilherbertuk left a reply on Add Video • 1 month ago

Hi The_Blues,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

Please try to explain what you are trying to achieve in more than 3 words. Please give us context to what you are trying to do. Please also provide how far you've gotten with code examples.

When providing code please use the markdown to help display it properly, this it done be surrounding code with `````````.

Neil

28th September, 2017

neilherbertuk left a reply on My Client Ip Address Got Block By Server When They Access My Web App! Help • 1 month ago

Hi Larafam,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

What you've asked isn't very clear. Some detail about your setup would be useful, such as are you on your own server that you control? Are you on shared hosting? Are protocol are you using, http or Https? If you are using TLS/SSL have you checked that you certs are find and that the issuer hasn't been blocked? How do you know the client is being blocked, what behaviour are they seeing? Are they getting timeouts? Can the client access your server by its IP address? Can they ping your server by domain or ip? Is your client located in a region that has government firewalls such as China? What have you already tried to find the problem?

Neil

27th September, 2017

neilherbertuk left a reply on Using "Form" Facade In My Own Package • 1 month ago

Hi Thomasbird

The Forms facade was removed from Laravel a whole ago and has been picked up by the Laravel Collective. They've not updated it for 5.5 yet but you can find the form facade available as a package from them here - https://laravelcollective.com/docs/master/html

Neil

25th September, 2017

neilherbertuk left a reply on Creating "Microsoft Like" Sign In Experience • 1 month ago

You need to implement a federated login or a SAML Identity Provider. Check out SimpleSAMLPHP. There are a few packages floating about that can also help.

SAML is designed to do exactly this and allows alot of enterprises to allow logins to multiple applications using a Single Sign On. A single portal is responsible for authentication and each application refer to it for authentication and session management.

Hope this is a nudge in the right direction.

Neil

24th September, 2017

neilherbertuk left a reply on Slow Request Times (>80ms) Local • 1 month ago

Try using https://github.com/barryvdh/laravel-debugbar as it can show you the total time it's taken for your app to load and where time is being spent.

Neil

23rd September, 2017

neilherbertuk left a reply on A Website For Getting A Template Database • 2 months ago

You are already on the best site to help you with that. Laracasts has a ton of videos which will teach you this. There are many video series that walk you through making a project from start to finish and will give you plenty of opportunities to learn about databases and database relations.

Neil

neilherbertuk left a reply on A Website For Getting A Template Database • 2 months ago

Hi nasr1,

Unfortunately, not that I am aware of. Databases are unique to the needs of your application, in the majority of cases, one size does not fit all. You've also not provided information to what sort of thing your even looking for or what you are trying to achieve, so, I highly doubt anyone will be able to help.

Can you tell me what your application is and why you want to database reuse? Obviously, if you've made a similar site before, you can take your migrations over to your new codebase.

Neil

19th September, 2017

neilherbertuk left a reply on Force The User To Validate The Mail To Navigate In The App • 2 months ago

Hi SYLVERT,

This can be done with middleware, checkout the official docs here - https://laravel.com/docs/middleware

Neil

18th September, 2017

neilherbertuk left a reply on Problem With Restricting Access To A Particular Page • 2 months ago

Check your Laravel.log and http server error log file for exact details of why you are getting the 500 error.

16th September, 2017

neilherbertuk left a reply on File Can Not Be Submitted In Form • 2 months ago

Pretty sure you need to add enctype="multipart/form-data" to your form tag

 <form action="/profile" method="POST" enctype="multipart/form-data">
        {{ csrf_field() }}
        <input type="text" name="username">   
        <input type="file" name="photo">                           
        <button type="submit">submit</button>                           
    </form>                            

Neil

neilherbertuk left a reply on Pulling More Than One Value In Query Builder • 2 months ago

Hi Patwan,

I'm not sure if I'm understanding what you want to achieve. The price field should be available in blade under {{ $item->price }}? Can you explain in more detail what you've tried and what isn't working rather than what you want to do?

Neil

15th September, 2017

neilherbertuk left a reply on Append Pivot Data To Model (?) • 2 months ago

Hi Eminos,

Not sure you are using Pivot or Many to Many relationships in the right way, it's hard to tell with what code you've given. Check out https://laravel.com/docs/5.5/eloquent-relationships#many-to-many

This is how I would do this

Attribute.php model

public function productCategories()
{
  return $this->belongsToMany('App\ProductCatagory');
}

ProductCategory.php model

public function attributes()
{
  return $this->belongsToMany('App\Attribute');
}

You would now have a new table on your database named Attribute_ProductCatagory with an id field for both tables. Attribute_id & ProductCategory_id.

You would then do something that's the reverse of what you are currently using to get attributes.

  $product = ProductCategory::where(...what ever logic you want here..)->with('attributes')->first();

Attributes would then be available via $product->attributes

To attach an attribute, you can use the attach method.

  $product->attributes()->attach('attribute id here');

You would do the exact same with the attribute to attach a product category.

Neil

14th September, 2017

neilherbertuk left a reply on Socialize 500 Error • 2 months ago

FRANCESCO331 please edit your post above, it looks like you've included an API key in your log entry. Can you confirm what package you are using? Are you using Laravel's Socialite or nanuly/socialize?

Neil

neilherbertuk left a reply on Socialize 500 Error • 2 months ago

Hi FRANCESCO331,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

What have you done so far? Have you checked out the Laravel.log file and your web servers error logs for the error details?

Neil

neilherbertuk left a reply on Nginx | Can Only Access Some Routes But Not All • 2 months ago

Hi KAZUTO,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

Please can you post your routes file, the server os and the os of your local environment, what version of nginx, what version of PHP and what version of Laravel you are using.

Neil

12th September, 2017

neilherbertuk left a reply on How Can I Build Modular Architecture In Laravel ? • 2 months ago

Hi ONDERSAHIN,

I've been working on a package that does exactly this. It's still under development but it does the job. https://packagist.org/packages/neilherbertuk/laravel-modules - I've been working on this for a number of months and was getting fed up with copying it to new projects so thought I would release it, even if it's only to make my life easier! There are a few tutorials and packages out there that do this, but I hope to include lots of extra features such as artisan commands to help quickly create a new module. So far it can create routes and controllers. Everything else currently has to be manually made.

Even if you don't use my package, take a look at the ModuleServiceProvider.php file as that is what loads everything. On boot it looks at each folder within app/Modules and looks through it to see what it needs to load.

Neil

neilherbertuk left a reply on Penetration Test - Laravel_session Cookie Termination • 2 months ago

Hi ucreate.it,

Potential security vulnerabilities really should not be discussed in the public domain in the first instance.

As per Laravel's Documentation

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell at [email protected] All security vulnerabilities will be promptly addressed.

Neil

11th September, 2017

neilherbertuk left a reply on ACL Abilities Not Being Define In Production Environment • 2 months ago

Glad to got it working, did it start working directly after the server restart? Might be worth double checking if opcache is enabled as this sounds like it is! (Check your phpinfo() to see if it is)

neilherbertuk left a reply on Undefined Property, Trying To Get Property Of Non Object, Creating Default Object From Empty Values • 2 months ago

Hi Pafait,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help answer you.

Can you provide code for where you are seeing this? This error is usually when you are trying to access a collection as an array or the other way round, or when a collection or an entity of a collection you are trying to use just isn't set.

Neil

neilherbertuk left a reply on Logout Locked Users • 2 months ago

The only issue with global Middleware would be to make sure you account for a user not being logged in. Depending on the logic you use, you may get errors from null or non-existent variables.

neilherbertuk left a reply on Logout Locked Users • 2 months ago

Hi wizjo,

Not sure if the field "active" describes what you are trying to do accurately enough, perhaps it would be worth changing this to the word "locked"?

You should probably put this kind of logic into Middleware. A quick search of the boards shows a similar post here which answers your question:

Create a new middleware

    $php artisan make:middleware CheckIsLocked

Add it to your $routeMiddleware within app\Http\Kernel.php

    'isLocked' => \App\Http\Middleware\CheckIsLocked::class,

Edit the app\Http\Middleware\CheckIsLocked.php Middleware.

You can access the logged in user from the $request variable: $request->user()->active

Then add the isLocked Middleware to the appropriate routes.

Neil

neilherbertuk left a reply on ACL Abilities Not Being Define In Production Environment • 2 months ago

Have you got opcache enabled on your production server?

Neil

10th September, 2017

neilherbertuk left a reply on Digital Signage • 2 months ago

Hi JOECODE,

There already are some great open source digital signage packages out there. Not sure if it's wise to reinvent the wheel for such a complex system. If you are serious about writing something in Laravel, check out xibo. It's a php based (doesn't use Laravel) digital signage platform that's open source. Might be a good place to get some ideas.

Neil

neilherbertuk left a reply on I Am Using Server Site Data Table Package In Laravel 5.3 I Have Got Json Response How I Can Render In Html Please Help Me. • 2 months ago

Hi LARA123,

It would be helpful if you could provide more detail to allow someone to be able to answer your question. Please check out Laracasts Posting Guidelines which details what makes a good post and the sort of information needed to be able to help.

Things like, what package you are using (provide links), the code being used to generate what you've posted, more info to how you want to consume that data?

A basic assumption that you want to use the json as an array or collection you can use the built in PHP function [json_decode](http://php.net/manual/en/function.json-decode.php) to convert it to an array and then the laravel function ```collect` to turn it into a collection. You can the consume this data as you normally would in Laravel.

Neil

neilherbertuk left a reply on Using Redis As Main Data Source • 2 months ago

It would completely depend on use case and what your internal requirements are. What sort of data are you using, how often it would be accessed.

If your need for Redis is about hitting below a certain time to respond to the user, then yes, cache everything. However, it would be pointless to cache data that doesn't get used very often, as you would be dedicating extra resources to store it both in MySQL and again in cache.

Problem is as your data grows, so will your caching infrastructure. Which will lead to potentially unnecessary cost of servers, the more resources you throw at Redis, obviously the higher the operating costs become. If you want to hit sub certain times across multiple regions you'll also need to consider Redis clustering and routing to the nearest data centres etc.

I don't personally prefer either way. It really does depend on use. Such as multi-tennant applications, it makes sense to cache data that will be accessed globally such as config or site specific branding or such forever, but caching data that a single user might access once a day, or only a few times a week doesn't make much sense to me. In that case, cache for a limited amount of time, or don't bother at all.

Neil

neilherbertuk left a reply on Ajax Call Not Hitting Success Event, Error Event Always Fired • 2 months ago

Hi OLOTUDAMMY,

Before posting any further questions please take a look at the following post - Laracasts Posting Guidelines - this will help you provide enough information to get an answer to your question.

First thing, can you please give us some more context? Can you post the html and PHP that supports this function? Where have you taken the code you've pasted above from, a view? or from the rendered page? As it's showing a blade directive it would be useful to see the rendered script so we can see what URL you are trying to call?

What have you tried so far? Have you used your browses debug tools (usually F12) to see what's going on? Have you tried to include code that shows you what response the Ajax call is getting?

Neil

neilherbertuk left a reply on Which One I Should Return First Json Or RedirectPath??? • 2 months ago

Hi TANGGUH,

Can you explain in more detail what you are trying to achieve? Under what circumstances does your app require you to return json? Are you using Ajax calls? Are you exposing an API?

As soon as a return statement is called, the method terminates. So your last line never fires. If you don't need the json response at all, simply remove it

Neil

neilherbertuk left a reply on Multiple Controller For Single View • 2 months ago

Hi ZETTZ,

This can be achieved using a View Composer and a service provider.

Within a service provider, this could be the default AppServiceProvider but should probably be in it's own Service Provider.

There are a couple of ways of doing this, here is a basic example of using a closure to return something to your views. Within the boot method add:

View::composer('*', function ($view) {
  // Logic here
    $view->with('config', 'This is the config value');
});

The * acts as a wildcard, you could put a single view here, or an array list of views you want to make this available too. Using the wildcard, within your views would be a globally available variable named $config which will return the string value 'This is the config value'.

You can also use the route style syntax and include a view composer class to separate the logic into its own place.


// Using class based composers...
        View::composer(
            '*', 'App\Http\ViewComposers\ConfigComposer'
        );

You would then create a view composer class and use the same $view->with logic to add your config.

Neil

Some resources:

9th September, 2017

neilherbertuk left a reply on Using Redis As Main Data Source • 2 months ago

That's not something I use it for, but there is no reason why you can't. However, it would make your writing mechanisms longer as you would need to regenerate your entire HTML to include the change, otherwise the end user wouldn't see it. Laravel has its own caching system which works with Redis out of the box - https://laravel.com/docs/5.5/cache - though you do need to pull in another package to enable it.

I might add that Redis might be overkill for your needs. Oh and btw the workflow I mentioned is how Facebook works, though they use memcached instead of Redis.

Neil

neilherbertuk left a reply on Pull Models From Relationship Data • 2 months ago

Hi LMARTINS,

You need to add a query scope to your purchases model.

https://laravel.com/docs/5.5/eloquent#query-scopes

You can do this as an anonymous global scope, something like this should do it. Add this to your purchases model (not tested code)

 protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('product', function (Builder $builder) {
            $builder->with('Product');//Must have a relation on your product and purchases models to each other
        });
    }

Neil

neilherbertuk left a reply on How To Display First, Middle And Last As Full Name. • 2 months ago

Hi SMEHSAN,

There are several ways you could tackle this.

You could add an additional field to your table for full name, and concatenate the 3 names into that column when you store data. Not the best solution as it would duplicate data and would have to be updated if the name gets changed.

You could add an accessor to your student model something like

public function getFullnameAttribute(){
  return $this->fname . ' '. $this->mname .' '. $this->lname;
}

Within your blade view you would then call {{ $student->fullname }}

You could also add a newquery scope to your model to automatically combine the 3 into a new column. I'm not going to cover that as it is overkill.

The easiest way would be simply to echo out each field directly in your blade view

{{ $student->fname }} {{ $student->mname }} {{ $student->lname }}

Neil

neilherbertuk left a reply on Using Redis As Main Data Source • 2 months ago

Hi KONSTANTINRACHEV,

There is a lot to think about if you plan on using Redis. I'm no expert but I will try and answer you to the best of my knowledge.

First thing first, Redis is an in memory key value store. It's not capable of being queried in the same way a MySQL database can be. So keeping this in mind, you need to know the key of what ever you want to retrieve. A lot of thought will need to be put into your naming convention because of this.

Some gotchas or caveats, as it's in memory, the amount of memory available on the server will limit the amount of data you can store. Out of the box, it also doesn't write anything to disk. You can enable snapshots which will write a copy of what's stored to disk on a time schedule or when a certain number of changes have been made. Without this, if your server reboots, you will lose everything in memory. With it, it will take a while for your Redis server to recover when it restarts. You will lose anything that was changed since the last snapshot.

Redis is generally used for caching and not a standalone storage service. My use of Redis uses MySQL as the main storage engine and Redis for reading. So the workflow would be:

Write to MySQL followed by writing to Redis. So anything that gets updated in MySQL also gets updated in Redis. From a reading point of view everything is read from Redis first, if it isn't there I will read it from MySQL and write it to Redis. With this method it takes less time to recover if your Redis server goes down. Reads will be a bit slower to start with, but at least the data will be available straight away.

Redis is a fantastic layer to add for caching, a typical MySQL query might take 200ms, pulling the same data from Redis will take 10-20ms, so it is great for speeding sites up.

Hopefully this gives you some idea of how to get around failures. If you have any further questions, I will try to answer them.

Neil

26th June, 2017

neilherbertuk left a reply on My Credit Card Showing Insufficient Funds • 4 months ago

Hi NAGAVINOD424,

I would suggest you use the following link to get in touch with Jeffery - https://laracasts.com/contact

Something perhaps worth checking? Does your issuing bank allow you to make payments in forgien currency? If so it may also be worth checking what fees they charge as most banks charge a percentage of the transaction plus an admin fee, you will need to account for that while making payment. Your best bet would be to get in touch with your bank and check why they declined the transaction, as they are likely able to tell you more than Jeffery can.

Neil

23rd June, 2017

neilherbertuk left a reply on Failed To Load Resource: The Server Responded With A Status Of 500 (Internal Server Error) • 5 months ago

Take a look at your Laravel log file, you'll find it at /storage/logs/laravel.log

Within this you'll see a more detailed error log of what's causing the issue.

Neil

20th June, 2017

neilherbertuk left a reply on How Do You Push A Script Onto A Stack Only If It Doesn't Exist Yet? • 5 months ago

Hi Tag,

This is probably one of the most annoying features of the @push and @stack blade features. You can't easily check if something already exists.

I usually resort to using PHP for this purpose, it is a slightly dirty way of working around the issue, but it does work. I'd be keen to know if anyone else has come up with a better solution.

@push('scripts')
  @if(!$scriptAlreadyIncluded)
    <script src="file.js"></script>
    @php 
      $scriptAlreadyIncluded = true;
    @endphp
  @endif 
@endpush

Neil

16th June, 2017

neilherbertuk left a reply on Variable In Url() Helper • 5 months ago

You should be able to use concatenation to do this, use dots instead of commas.

{{ url('/group/'. $var .'/profiles') }}

Or this should work with double quotes

{{ url("/group/$var/profiles") }}

neilherbertuk left a reply on Provision Server And Test On Subdomain On Different IP • 5 months ago

This is something you can do with your DNS, you'll need to create a cname or A record, pointing it at the server you want to serve from.

A cname can be pointed at another URL, or an a record can be pointed at an IP address.

15th June, 2017

neilherbertuk left a reply on Doubt With Laravel Deploy, Git And .gitignore Files • 5 months ago

Hi MANEL69,

Your . gitignore file contains what it does for good reason. Firstly it keeps your project small so it's quick to deploy. Your git repo is set using this to not include your vendor folder, as everything in your vendor folder is already on a git repo, it does not make sense to duplicate code, it also allows you to make sure the packages you've pulled in are up to date (security fixes etc).

Secondly, for security it does not include your .env file, this is to prevent passwords getting stored in version control. As you have access to the server you are deploying on you can copy your .env file, or create a production version manually, once it's in place it won't get overwritten as git will not touch it.

Your vendor folder is easy to sort, you will need to ensure that composer is installed on the server you are deploying to, simply run the following from the root of your project.

composer install

This will install all of the missing dependencies within your vendor folder.

Neil

7th June, 2017

neilherbertuk left a reply on How To Work With Fixed State/status/type Fields • 5 months ago

Hare coding is never a good idea, however you could use an enum column on your database.

https://laravel.com/docs/5.4/migrations

$table->enum('choices', ['foo', 'bar']);    ENUM equivalent for the database.

This would limit the possible values to anything within the array provided, so in the example above, the column named 'choices' could only ever be too or bar. You could then select the rows you are after by simply adding a where to your query.

Neil

neilherbertuk left a reply on 403 Forbidden On New Projects • 5 months ago

Routing is done from the root of the domain, so anything after the domain is used as your route path. So even if your project is sat inside a folder named "home" and the URL is chill-pill.com/home, remove the domain and that's the route needed. To make it easier you can create a routing group with a prefix of home so you don't have to change too much.

https://laravel.com/docs/5.4/routing#route-group-prefixes

Route::group(['prefix' => 'home'], function () {
    Route::get('users', function ()    {
        // Matches The "/home/users" URL
    });
});
Edit Your Profile
Update

Want to change your profile photo? We pull from gravatar.com.