“未定义的变量:书籍
Posted
技术标签:
【中文标题】“未定义的变量:书籍【英文标题】:"Undefined variable: books 【发布时间】:2019-01-03 03:59:31 【问题描述】:我收到此错误:
"未定义变量:书籍(查看: C:\xampp\htdocs\Shop\resources\views\welcome.blade.php)"
我在Welcome.blade.php
中显示我的项目时遇到问题,因为它说我有一个未定义的变量。而且我找不到让它工作的方法。
这是我的模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
protected $fillable = [
'name',
'description',
'condition',
'category_id',
'image'
];
public function category()
$this->belongsTo(Category::class);
这是我的ProductsController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Category;
use App\Product;
class ProductsController extends Controller
public function index()
$products = Product::all();
return view('admin.product.index',compact('products'));
public function create()
$categories = Category::pluck('name','id');
return view ('admin.product.create', compact('categories'));
public function store(Request $request)
$product = $request->except('image');
//validation
$this->validate($request,[
'name' => 'required',
'condition' => 'required',
'image' => 'image|mimes:png,jpg,jpeg|max:10000'
]);
//image upload
$image = $request->image;
if( $image )
$imageName=$image->getClientOriginalName();
$image->move('images',$imageName);
$product['image']=$imageName;
Product::create($product);
return redirect()->route('admin.index');
这是我的Welcome.blade.php
<div class="row">
@forelse( $books as $book)
<div class="column-prod">
<a href="route('book')">
<div class="card-prod">
<center>
<img src="/css/aa.jpg" style="width: 300px; height: 300px;">
</center>
</a>
<div class="container-prod">
<h2></h2>
<p class="title">$book->name</p>
<p class="price">Php 450.00</p>
<p>
<button class="button">
<i class="fas fa-cart-arrow-down"></i>Add to Cart
</button>
</p>
<p>
<button class="button">
<i class="fas fa-heart"></i> Add to Wishlist
</button>
</p>
</div>
</div>
</div>
@empty
<h3> No Books </h3>
@endforelse
</div> <!--Div all end-->
@endsection
这是我的web.php
,很抱歉我是新手……希望你能帮助我。
<?php
Route::get('/', function ()
return view('welcome');
);
Route::get('/cart','ShopController@cart');
Route::get('/signin','ShopController@signin');
Route::get('/book','ShopController@book');
Route::get('/wishlist','ShopController@wish');
Auth::routes();
Route::get('/logout', 'Auth\LoginController@logout');
Route::get('/home', 'HomeController@index');
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function()
Route::get('/',function()
return view('admin.index');
)->name('admin.index');
Route::resource('product','ProductsController');
Route::resource('category','CategoriesController');
);
【问题讨论】:
欢迎来到 ***。什么是返回welcome
视图?
仅供参考,但看起来你的 div 结束标签放错了位置。
它返回错误...“未定义变量:书籍(视图:C:\xampp\htdocs\Shop\resources\views\welcome.blade.php)”它应该显示名称和图片我添加的产品
@Messi 向我们展示./routes/web.php
文件的内容
【参考方案1】:
替换
Route::get('/', function ()
return view('welcome');
);
与
Route::get('/', function ()
return view('welcome')->with(['books' => \App\Product::all()]);
);
【讨论】:
@Messi 如果它解决了您的问题,然后将其作为可接受的答案,以便其他人可以发现它有用。谢谢【参考方案2】:替换
Route::get('/', function ()
return view('welcome');
);
有
Route::get('/', function ()
return view('welcome')->with(['books' => \App\Books::all()]);
);
(如果可行,那么您应该像处理其他代码一样将代码移动到控制器中)
【讨论】:
未定义books
这仍然会抛出与您传递 products
相同的错误,但视图正在寻找 $books
以上是关于“未定义的变量:书籍的主要内容,如果未能解决你的问题,请参考以下文章