我在Laravel为我的网站建立后端。我只需要几个文本框来填充模板。到目前为止,我已设法做到这一点,但每次我将值传递给模板时,我也会看到所有先前的值,而不仅仅是最后一个值。
例如,如果我正在编辑滑块标题,我也会看到所有以前的滑块标题 - 我只想看到最后一个。
我的控制器:
public function store()
{
$input = Input::all();
homepage::create([
'slider_title' => $input['slider_title'],
]);
return Redirect::to('/');
}
负责显示滑块标题的部分视图:
@foreach ($homepage as $home)
{{$home->slider_title}}
@endforeach
在admin中查看用户输入:
{{ Form::open(['url' => '/admin']) }}
<div>
{{ Form::label('slider_title', 'Slider title:') }}
{{ Form::text('slider_title') }}
</div>
<div>
{{ Form::submit('Change a slider title') }}
</div>
{{ Form::close() }}
管理员路线:
Route::post('/admin', 'AdminController@store');
主页路线:
Route::get('/', 'PageController@home');
PageController home方法:
public function home()
{
$homepage = Homepage::all();
return View::make('home')->with('homepage',$homepage);
}
我尝试用以下内容更改PageControl:
$homepage = Homepage::orderBy('id', 'desc')->first();
但我收到此错误:
ErrorException:在我的视图页面上尝试获取非对象的属性
public function home()
{
$homepage = Homepage::all();
return View::make('home')->with('homepage',$homepage);
}
答案 0 :(得分:0)
您正在查看所有幻灯片,因为您正在选择所有幻灯片:
$homepage = Homepage::all();
这应该给你最后一个:
$homepage = Homepage::orderBy('id', 'desc')->first();
或
$homepage = Homepage::orderBy('created_at', 'desc')->first();
请记住,现在你只得到一个结果,你不能再使用foreach了:
foreach ($homepage as $home)
您可以直接参考:
$homepage->slider_title
如果您仍想返回一个数组以使用foreach,这是一个选项:
$homepage = array( Homepage::orderBy('created_at', 'desc')->first() );