Reputation: 15
I want to click on "View Detail" button and go to another page "/viewdeail/id=2", here id=2 is comes from the View Detail button click. So far I prepare this snippet.
Controller:
public function schooldetailviewid($school_id)
{
return view('viewdeail/school_id={$school_id}', compact('school_id'));
}
Route
Route::get('/viewdeail/school_id={school_id}', 'ViewController@schooldetailviewid')->name('schooldetail');
I am very much confused about how to solve this.
Upvotes: 0
Views: 4437
Reputation: 375
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){
Route::resource('category','CategoryController');
});
public function index()
{
$categories = Category::latest()->get();
return view('admin.category.index',compact('categories'));
}
Upvotes: 0
Reputation: 573
you can achieve this in a couple of ways.
you could do,
$school_id = $request->get('id');
or
$school_id = YourModel::find('$id');
you can use Request to fetch your data
Controller
public function schooldetailviewid(Request $request)
{
$school_id = $request->get('id');
return view("viewdeatil/school_id/$school_id", compact('school_id'));
}
Route
your route should look like this;
Route::get('/viewdeail/school_id/{school_id}', 'ViewController@schooldetailviewid')->name('schooldetail');
Blade your a tag should look like this;
<a href="{{route('schooldetail', $school_id->id)}}">getDetails</a>
Upvotes: 0
Reputation: 178
With Laravel, if you need to pass a required parameter in your route, you need to specify it into your routes/web.php
file, and get it from your controller action.
This the common way to do that:
// routes/web.php
Route::get('/viewdeail/{schoolId}', 'ViewController@details')->name('schooldetail');
// app/Http/Controllers/ViewController.php
class ViewController extends Controller {
...
public function details($schoolId) {
// your view located in ressources/views folder
return view('viewdeail/', compact('schoolId'));
}
}
Now, if you want to just get parameters like domain.tld/viewdeail?schoolId=3
for example, you need to remove {schoolId}
in the previously defined route in the routes/web.php
file, and edit your controller and proceed like that:
// app/Http/Controllers/ViewController.php
use Illuminate\Http\Request; // we need the Request class, so import it
class ViewController extends Controller {
...
public function details(Request $request) {
$schoolId = $request->query('schoolId');
// your view located in ressources/views folder
return view('viewdeail/', compact('schoolId'));
}
}
Upvotes: 0
Reputation: 5452
If you are passing the parameter this way /viewdeail?id=2
Then in your controller you need to use the Request
Object to fetch it:
public function schooldetailviewid(Request $request)
{
$school_id = $request->get('id');
return view("viewdeatil/school_id=$school_id", compact('school_id'));
}
Please review the Laravel routing documentation: https://laravel.com/docs/5.8/routing#route-parameters
Upvotes: 2