laravel 5.4 视图中有未定义的变量
laravel 5.4 undefined variable in view
我是 laravel 的新手,我尝试从数据库中提取数据,但一直出现错误页面,提示视图中存在未定义的变量。
我假设我在控制器中做错了(或没有做)。所以我有一个 create.blade.php 将数据从表单发布到数据库并且一切正常,但是我希望它在发布到数据库后重定向到 show.blade.php 显示上传的数据,这里是我遇到错误消息的地方。
这是我在控制器中的存储功能 -
public function store(Request $request)
{
$data4page = new Data4page;
$data4page->h1Ttle = $request->h1Ttle;
$data4page->h4Ttle = $request->h4Ttle;
$data4page->description = $request->description;
$data4page->save();
/*redirecting to the content's show page*/
return redirect()->route('content.show', $data4page->id);
}
这是同一控制器内的显示功能 -
public function show($id)
{
//
$data4page = Data4page::find($id);
return view('digital.show')->with(compact('data4page'));
}
我收到的错误消息是 -
Undefined variable: data4page (View: /var/www/html/theproject/resources/views/content/show.blade.php)
在 show.blade.php 中,这是我所拥有的示例 -
<h1>{{ $data4page->h4Ttle }}</h1>
<p>{{ $data4page->description }}</p>
<h4>{{ $data4page->h4Ttle }}</h4>
说了这么多,我也尝试了各种方法在控制器的显示函数中返回视图,但所有这些都会导致与上面相同的错误消息。这些变体包括 -
return view('content.show')->with('data4page', $data4page);
return view('content.show',['data4page'=>$data4page]);
更新:我之前有打字错误,但现在我得到的错误是 -
undefined variable: {"id":9,"h1Ttle":"h1 sample text","h4Ttle":"h4 sample text","description":"body text goes here"} (View: /var/www/html/theproject/resources/views/content/show.blade.php)
这是show.blade.php-
@extends('main')
@section('title')
@section('content')
<div class="app-template">
<main class="wrapperMain">
<div class="">
<aside class="navSidebar">
<nav class="navProperty">
<h1 class="navProperty-title">{{ $data4page->h1Ttle }}</h1>
</nav>
<footer class="footerProperty">
<div class="upcomingSchedule">
<h4 class="upcomingSchedule-heading">{{ $data4page->h4Ttle }}</h4>
</div>
</footer>
</aside>
</div>
<div class="content content--withSidebar">
<div class="lead--Home">
<p>{{ $data4page->description }}</p>
</div>
</div>
</main>
@endsection
您的名字不匹配。
return view('content.show')->with(['name' => $data4page]);
这里你应该使用:
<h1>{{ $name->h4Ttle }}</h1>
如你所说name
在您的其他选项中,您定义了 Data4page
,在您看来,您使用了 data4page
(小写 d)。
更改了这个
return view('content.show')->with(['name' => $data4page]);
收件人:-
return view('content.show')->with(compact('data4page'));
希望对您有所帮助!
当下面给出的答案绝对正确时,您为什么要用错误的大小写输入变量名? PHP 变量区分大小写。您在显示的代码中将 $Data4page
传递给您的视图,然后尝试使用访问权限 $data4page
。以下任何一项都可以。
return view('content.show', ['data4page' => $data4page]);
return view('content.show', compact('data4page'));
return view('content.show')->with('data4page', $data4page);
return view('content.show')->with(['data4page' => $data4page]);
return view('content.show')->with(compact('data4page'));
您需要遍历集合来获取值
@section('content')
<div class="app-template">
<main class="wrapperMain">
@foreach ($data4page as $d4p)
<div class="">
<aside class="navSidebar">
<nav class="navProperty">
<h1 class="navProperty-title">{{ $d4p->h1Ttle }}</h1>
</nav>
<footer class="footerProperty">
<div class="upcomingSchedule">
<h4 class="upcomingSchedule-heading">{{ $d4p->h4Ttle }}</h4>
</div>
</footer>
</aside>
</div>
<div class="content content--withSidebar">
<div class="lead--Home">
<p>{{ $d4p->description }}</p>
</div>
</div>
@endforeach
</main>
@endsection
我是 laravel 的新手,我尝试从数据库中提取数据,但一直出现错误页面,提示视图中存在未定义的变量。
我假设我在控制器中做错了(或没有做)。所以我有一个 create.blade.php 将数据从表单发布到数据库并且一切正常,但是我希望它在发布到数据库后重定向到 show.blade.php 显示上传的数据,这里是我遇到错误消息的地方。
这是我在控制器中的存储功能 -
public function store(Request $request)
{
$data4page = new Data4page;
$data4page->h1Ttle = $request->h1Ttle;
$data4page->h4Ttle = $request->h4Ttle;
$data4page->description = $request->description;
$data4page->save();
/*redirecting to the content's show page*/
return redirect()->route('content.show', $data4page->id);
}
这是同一控制器内的显示功能 -
public function show($id)
{
//
$data4page = Data4page::find($id);
return view('digital.show')->with(compact('data4page'));
}
我收到的错误消息是 -
Undefined variable: data4page (View: /var/www/html/theproject/resources/views/content/show.blade.php)
在 show.blade.php 中,这是我所拥有的示例 -
<h1>{{ $data4page->h4Ttle }}</h1>
<p>{{ $data4page->description }}</p>
<h4>{{ $data4page->h4Ttle }}</h4>
说了这么多,我也尝试了各种方法在控制器的显示函数中返回视图,但所有这些都会导致与上面相同的错误消息。这些变体包括 -
return view('content.show')->with('data4page', $data4page);
return view('content.show',['data4page'=>$data4page]);
更新:我之前有打字错误,但现在我得到的错误是 -
undefined variable: {"id":9,"h1Ttle":"h1 sample text","h4Ttle":"h4 sample text","description":"body text goes here"} (View: /var/www/html/theproject/resources/views/content/show.blade.php)
这是show.blade.php-
@extends('main')
@section('title')
@section('content')
<div class="app-template">
<main class="wrapperMain">
<div class="">
<aside class="navSidebar">
<nav class="navProperty">
<h1 class="navProperty-title">{{ $data4page->h1Ttle }}</h1>
</nav>
<footer class="footerProperty">
<div class="upcomingSchedule">
<h4 class="upcomingSchedule-heading">{{ $data4page->h4Ttle }}</h4>
</div>
</footer>
</aside>
</div>
<div class="content content--withSidebar">
<div class="lead--Home">
<p>{{ $data4page->description }}</p>
</div>
</div>
</main>
@endsection
您的名字不匹配。
return view('content.show')->with(['name' => $data4page]);
这里你应该使用:
<h1>{{ $name->h4Ttle }}</h1>
如你所说name
在您的其他选项中,您定义了 Data4page
,在您看来,您使用了 data4page
(小写 d)。
更改了这个
return view('content.show')->with(['name' => $data4page]);
收件人:-
return view('content.show')->with(compact('data4page'));
希望对您有所帮助!
当下面给出的答案绝对正确时,您为什么要用错误的大小写输入变量名? PHP 变量区分大小写。您在显示的代码中将 $Data4page
传递给您的视图,然后尝试使用访问权限 $data4page
。以下任何一项都可以。
return view('content.show', ['data4page' => $data4page]);
return view('content.show', compact('data4page'));
return view('content.show')->with('data4page', $data4page);
return view('content.show')->with(['data4page' => $data4page]);
return view('content.show')->with(compact('data4page'));
您需要遍历集合来获取值
@section('content')
<div class="app-template">
<main class="wrapperMain">
@foreach ($data4page as $d4p)
<div class="">
<aside class="navSidebar">
<nav class="navProperty">
<h1 class="navProperty-title">{{ $d4p->h1Ttle }}</h1>
</nav>
<footer class="footerProperty">
<div class="upcomingSchedule">
<h4 class="upcomingSchedule-heading">{{ $d4p->h4Ttle }}</h4>
</div>
</footer>
</aside>
</div>
<div class="content content--withSidebar">
<div class="lead--Home">
<p>{{ $d4p->description }}</p>
</div>
</div>
@endforeach
</main>
@endsection