我有一个简单的Crud应用程序,我可以添加详细信息并保存到数据库,现在我想显示这些数据。
这是我显示这些数据的解决方案
PageListController
看起来像这样,只是用来显示数据
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\PageList;
class PageListController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$pages = PagesList::all();
return view('pages.index', compact('pages'));
}
}
这里的观看次数为index.blade.php
@extends('layouts.app', ['activePage' => 'table', 'titlePage' => __('Table List')])
@section('content')
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title ">Page list</h4>
<p class="card-category">Here you can manage pages</p>
</div>
<div class="row">
<div class="col-12 text-right">
<a href="{{ route('pages.create') }}" class="btn btn-sm btn-primary">Add page</a>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table">
<thead class=" text-primary">
<th>
ID
</th>
<th>
Page Name
</th>
<th>
Articles
</th>
<th>
Tags
</th>
<th>
Status
</th>
<th>
Action
</th>
<th>
Prebid
</th>
</thead>
<tbody>
@foreach ($pages as $page)
<tr>
<td>
{{$page->id}}
</td>
<td>
{{$page->pagetitle}}
</td>
<td>
{{$page->articlelist}}
</td>
<td>
{{{$contact->tags}}}
</td>
<td class="text-primary">
{{$page->status}}
</td>
<td class="td-actions">
<form action="" method="post">
<a rel="tooltip" class="btn btn-success btn-link" href="" data-original-title="" title="">
<i class="material-icons">edit</i>
<div class="ripple-container"></div>
</a>
<button type="button" class="btn btn-danger btn-link" data-original-title="" title="" onclick="confirm('{{ __("Are you sure you want to delete this user?") }}') ? this.parentElement.submit() : ''">
<i class="material-icons">close</i>
<div class="ripple-container"></div>
</button>
</form>
</td>
<td>
{{$page->prebid}}
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
现在,当我运行应用程序时,出现以下错误
ErrorException (E_ERROR)
Undefined variable: pages (View: C:\custom-xammp\htdocs\royalad-dashboard\resources\views\pages\index.blade.php)
注意:laravel很新。
更新
我尝试了法尔斯提供的最多的解决方案,但是仍然;同样的错误,这是我的存储库repo
我的代码怎么了?
答案 0 :(得分:2)
在您的控制器中使用:
return view('pages.index',['pages' => $pages]);
您没有以正确的方式绑定页面,这就是为什么当您尝试在刀片中访问页面时会得到错误的原因。
view()
函数将第二个参数作为绑定数组。在那里,您可以传递要在刀片中使用的变量的名称和值。
根据我的经验,在大多数情况下,我需要在刀片中使用多个变量,因此我总是创建一个数据数组,仅在刀片中传递该变量,然后在刀片中我使用数据阵列,就像您的情况让说您也想在刀片中传递用户对象,我会这样做:
$pages = PagesList::all();
$user = Auth::user();
$data = [
'pages' => $pages,
'user' => $user
];
return view('pages.index', ['data' => $data]);
然后在刀片中可以使用:$data['pages']
和$data['user']
答案 1 :(得分:2)
实际上,问题出在侧边栏和路由中。在边栏中,您尝试使用route('table')
访问“页面列表”,而在路由文件中,路由返回到没有pages
变量的索引页。并且您得到错误。像
<li class="nav-item{{ $activePage == 'table' ? ' active' : '' }}">
<a class="nav-link" href="{{ route('pages.index') }}">
<i class="material-icons">content_paste</i>
<p>{{ __('Page List') }}</p>
</a>
</li>
如果您想使用table
路线,请更改路线
Route::get('table-list', function () {
$pages = App\PagesList::all();
return view('pages.index',compact('pages');
})->name('table');
您的压缩就可以了。不需要更改它。
答案 2 :(得分:0)
用以下代码替换您的网站
.tab-wrapper {
width: auto;
padding-left: 17px;
background-color: aqua;
white-space: nowrap;
display: table-cell;
}
.content{
background-color: aqua;
}
.role-tab {
cursor: pointer;
display: inline-block;
height: 50px;
overflow: hidden;
text-align: center;
text-overflow: ellipsis;
vertical-align: middle;
margin-right: 19px;
margin-bottom:-3px;
}
.role-tab > p {
display: table-cell;
height: 50px;
overflow: visible;
vertical-align: middle;
width: 100%;
}
.role-tab-active {
margin-bottom:-3px;
border-bottom: 3px #108DE7 solid;
font-weight: bold;
}
答案 3 :(得分:0)
该错误表示您的页面变量未传递给视图。
您可以在索引函数中尝试一下吗?
return view('pages.index')->with(compact('pages'));