Sending data from routes to views
for a quick understanding of routes
Like I said, all the examples will quickly recall what you understood on Laravel. These examples are very basic and I have also provided the correspond pictures.
Laravel routes file located at routes\web.php
Sending simple string from route to URL.
// Example of sending simple string to views
Route::get('/string_example', function () {
return "Siddhu first laravel application";
});
The image shows the output
Laravel simple string sending to URL from routes
At the same time send basic array
// Example of sending array data to views
Route::get('/array_example', function () {
return ["Laravel","PHP","MySQL"];
});
Laravel simple array sending to URL from routes
sending simple array to URL. you can notice here, Laravel by default converting array to JSON format.
// Example of sending array data to views
Route::get('/json_example', function () {
return ["framework"=>"Laravel","server"=>"PHP","db"=>"MySQL"];
});
Laravel simple json sending to URL from routes
Checking case-sensitive. Yeah why not clear my doubt, Perhaps may be it work.
// case-senstive test => failed if we call with "case_senstive"
Route::get('/case_SENSTIVE', function () {
return "Case setive test of URL";
});
It's give me a 404 error. When I call with all small letters like (127.0.0.1:8000/case_senstive).
/**
* Passing data to URL (GET request) wildcard example
* ex: example.com/test/1
* ex: example.com/test/my-first-post
* ex: example.com/test/abcd
* this part {post} called wildcard
* wildcard must be pass on function
*/
Route::get('/test/{post}', function($post){
return view('test',["name"=>$post]);
});
Here I'm sending the wildcard {post} parameter. You can print the parameter in your view file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>All view files are located at resources folder in laravel</p>
<p>This view getting data from Routes.</p>
<p>Pass name parameter on get request.</p>
<p>My name is: {{$name}}</p>
</body>
</html>
Laravel view file example
Let's take blog as example, Now I'm going to show an example of real usage without database connection
/**
* Let's take a small example of blog posts
* Just assume some static data getting from DB ($posts)
* in this case you call url blog/my-first-post
* if posts are not available the redirect to 404
* abort() laravel function
* */
Route::get('blog/{post}',function($post){
$posts =
[
"my-first-post" => "Hello, This is my first blog post using laravel",
"my-second-post" => "Hello, This is my second blog post using laravel",
];
if (!array_key_exists($post,$posts)) {
abort(404,"Ohh Sorry! This post not avaialble");
}
return view('blog',["blog"=>$posts[$post]]);
});
----***---
You can set names for your route.
For Ex:
Route::get('/about_us', function () {
return view('about_us');
});
// above route we call in URL example.com/about_us
// Now we can set a name for route
Route::get('/about_us', function () {
return view('about_us');
})->name('about');
So in menu we can call this
<li><a href="{{ route('about') }}">About</a></li>
Comments
Post a Comment
Thank you :)