如果我使用{{$slider->name}}
,则无法从数据库中检索数据。但同时,它可以检索id
的数据。如果我使用{{$slider['name']}}
,则可以从数据库中检索名称。
有人可以告诉我这个问题的原因吗?
控制器
public function index()
{
$sliders=Slider::all();
//($sliders);
return view('slider.list',compact('sliders'));
}
查看
@extends('master')
@section('content')
<section class="content-header">
<h1>
Slider List
</h1>
</section>
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header">
@if($message = Session::get('success'))
<div class="alert alert-success alert-dismissible">{{ $message }}</div>
@endif
</div>
<div class="box-body">
<table id="pageList" class="table table-bordered table-striped table-responsive">
<thead>
<tr>
<th>SL</th>
<th>Slider Name</th>
<th>Image</th>
<th>Published</th>
<th>Created by</th>
<th>Created at</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($sliders as $slider)
<tr>
<td>{{$slider->id}}</td>
<td>{{$slider['name']}}</td>
<td>
@if($images=\App\SliderImage::where('slider_id','=',$slider->id)->get())
@foreach($images as $image)
<img width="80px" alt="image"
src="{{ asset('images/sliderImage/'.$image['image_path']) }}">
@endforeach
@endif
</td>
<td>{{$slider->published}}</td>
<td>{{$slider->created_By}}</td>
<td>{{$slider->created_at}}</td>
<td>
<form action="{{route('slider.destroy',$slider->id)}}" method="POST">
<a href="{{route('slider.edit',$slider->id)}}"
class="btn btn-sm btn-success">Edit</a>
<a href="" class="btn btn-sm btn-info">View</a>
@CSRF
@method('DELETE')
<button type="submit" class="btn btn-sm btn-danger"
onclick="return confirm('Are you sure to delete?')">Delete
</button>
</form>
</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<th>SL</th>
<th>Slider Name</th>
<th>Image</th>
<th>Published</th>
<th>Created by</th>
<th>Created at</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</section>
@endsection
答案 0 :(得分:0)
这取决于您的控制器方法。 如果您要在这样的视图中传递数组。
$slider = array(
"id"=>1,
"name"=>"slider_name",
);
return view('view_name',['slider'=>$slider]);
您必须编写 $ slider ['name'] 才能检索数据。
类似地,如果您直接使用从雄辩生成的对象。 像这样
$slider = Slider::where('somecondition','value')->get();
return view('view_name',['slider'=>$slider]);
现在您可以访问像这样的数据=> $ slider-> name;
答案 1 :(得分:0)
Laravel中的紧凑功能
我们通常在Laravel中使用compact将值发送到视图。像这样:
$sliders=Slider::all();
return view('slider.list',compact('sliders'));
Laravel希望将数组传递给视图帮助器功能。视图帮助器函数中的第二个参数是一个数组,其中键是变量的名称,而值是这些变量的内容。这些变量将在我们的视图中可用。
您还可以使用提取PHP
函数从关联数组中导入变量,例如从comapct()
函数创建的数组。 extract将把变量从数组导入到当前符号表中。
请参阅link