简体   繁体   中英

Laravel - How to stop printing URL and load page content?

Today I face a strange problem (as I face this first time so it is a strange problem for me). After saving the content of a model I just write the following line of code return route('organization'); so that it will redirect to the naming route organization after saving the content.

Once the content of the organization model saves it just print the URL of the page http//xyz.laravel/organization rather than printing the content of the page itself!

When I manually type and hit the dashboard URL it surprisingly prints the dashboard URL rather than loading the dashboard content: like the below image:
在此处输入图像描述

Everything was working fine before I tried to store the content of that model. Once the content is stored the application starts strange behavior. Here is the code of that model:

public function store(Request $request)
    {
        $validated = $request->validate([
            'organization_name' =>  'required|unique:organizations|max:255',
            'abn_number'        =>  'required',
            'address_one'       =>  'required|max:100',
            'state'             =>  'required',
            'post_code'         =>  'required'
        ]);

        // check organization exist or not
        $org = Organization::where('organization_name', $request->organization_name)->get();
        if( count( $org ) > 0 ) {
            //
        } else {
            $organization = new Organization();
            $organization->organization_name = $request->organization_name;
            $organization->abn_number = $request->abn_number;
            $organization->address_one = $request->address_one;
            $organization->address_two = $request->address_two;
            $organization->state = $request->state;
            $organization->post_code = $request->post_code;
            $organization->created_by = Auth::user()->id;
            $organization->created_at = Carbon::now();
            $organization->save();
            return route('organization');
        }
    }

Can anyone tell me what's actually happen and how can I fix this issue?

return route('organization'); will generate the URL link to the route and print it

You can use return redirect()->route('organization) ;

You can get more info from https://laravel.com/docs/8.x/redirects

This is because you are not redirecting to that route but you are returning route url as a string, to redirect a user to a named route you can use global redirect() helper as below

return redirect()->route('organization'); instead of return route('organization');

for more see documentation

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM