Reputation: 544
I am trying to pass 3 parameters from the controller to the view. For some reason i can only send 2 parameters and it gives an error saying
Undefined variable: 3rd parameter
my route
Route::get('/notification_list/notification_application/{user_id}/{notification_id}', 'AdminController@adminGetEachNotification')->name('show.notification_application');
My controller
public function adminNotificationList(){
//$notifications = Notification::all() ;
$data = [];
$data['notifications'] = Notification::where(['approved'=>0])->get();
$approvedData = [];
$approvedData['approvednotifications'] = Notification::where(['approved'=>3])->get();
$sendToAdmin = [];
$sendToAdmin['sendtoadmin'] = Notification::where(['approved'=>1])->get();
//dd($sendApproval);
return view('Notification.notification_admin', $data, $approvedData, $sendToAdmin);
}
my view
@extends('layouts.app')
@section('title', '| Notification')
@section('content')
<!-- Page content -->
<div id="page-content-wrapper">
<!-- Keep all page content within the page-content inset div! -->
<div class="page-content inset">
<div class="row">
<div class="col-xs-12">
<ul>
<h1>Notifications</h1>
</ul>
</div>
</div>
<br/>
<h2>New Application</h2>
<div class="row">
<div class="col-xs-12">
<table border="1">
<thead>
<tr>
<td>Notification ID</td>
<td>Name of Applicant</td>
<td>Applied date</td>
<td>Approve</td>
</tr>
</thead>
<tbody>
@foreach ($notifications as $notification)
<tr>
<td>{{ $notification->id }}</td>
<td><a href="/admin/notification_list/notification_application/{{$notification->user->id}}/{{$notification->id}}">{{ $notification->user->name }}</a></td>
<td>{{$notification->created_at->todatestring()}}</td>
<td>{{$notification->approved}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<br/>
<h2>Approved Application</h2>
<div class="row">
<div class="col-xs-12">
<table border="1">
<thead>
<tr>
<td>Notification ID</td>
<td>Name of Applicant</td>
<td>Applied date</td>
<td>Approved</td>
<td>Approved Date</td>
</tr>
</thead>
<tbody>
@foreach($approvednotifications as $approvednotification)
<tr>
<td>{{ $approvednotification->id }}</td>
<td><a href="/home/notification/notification_application/{{$approvednotification->user->id}}/{{$approvednotification->id}}">{{ $approvednotification->user->name }}</a></td>
<td>{{$approvednotification->created_at->todatestring()}}</td>
<td>Approved</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<h2>Pending Approval from Super Admin</h2>
<div class="row">
<div class="col-xs-12">
<table border="1">
<thead>
<tr>
<td>Notification ID</td>
<td>Name of Applicant</td>
<td>Applied date</td>
<td>Approved</td>
<td>Approved Date</td>
</tr>
</thead>
<tbody>
@foreach($sendtoadmin as $send)
<tr>
<td>{{ $send->id }}</td>
<td><a href="/home/notification/notification_application/{{$send->user->id}}/{{$send->id}}">{{ $send->user->name }}</a></td>
<td>{{$send->created_at->todatestring()}}</td>
<td>Approved</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
@stop
Can anyone point me to the right direction. thank you
Upvotes: 2
Views: 1979
Reputation: 11656
There are two problems here first is you are not using the right syntax to pass variables to view see here and the second is you are not passing the same variables you fetched in your controller.
try this,
In your controller:
public function adminNotificationList(){
$notifications = Notification::where(['approved'=>0])->get();
$approvednotifications = Notification::where(['approved'=>3])->get();
$sendtoadmin = Notification::where(['approved'=>1])->get();
return view('Notification.notification_admin', compact('notifications ', 'approvednotifications ', 'sendToAdmin'));
}
and then you can keep your view code the same as is.
Upvotes: 0
Reputation: 163948
You need to pass data as an array in the second parameter:
return view('Notification.notification_admin', compact('data', 'approvedData', 'sendToAdmin'));
Or:
return view('Notification.notification_admin', [
'data' => $data,
'approvedData' => $approvedData,
'sendToAdmin' => $sendToAdmin
]);
Upvotes: 4