Iva*_*vić 3 php laravel laravel-5
在创建模型之后,当我尝试获取其属性时,我只获得数据库中填充的字段.
----------------------------------------------
DB: | id | shopID | name | bottleID | capacity |
----------------------------------------------
| 1 | 8 | Cola | 3 | |
----------------------------------------------
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我也需要容量属性,作为空字符串
public function getDrinkData(Request $request)
{
$drink = Drink::where('shopId', $request->session()->get('shopId'))->first();
if($drink) {
$drink = $drink->attributesToArray();
}
else {
$drink = Drink::firstOrNew(['shopId' => $request->session()->get('shopId')]);
$drink = $drink->attributesToArray(); // i want to get even empty fields
}
return view('shop.drink')->(['drink' => $drink])
}
Run Code Online (Sandbox Code Playgroud)
但是为了以后的使用(在视图中),我需要拥有所有属性,包括空属性.我知道这段代码可以正常工作,但我不知道如何更改它以检测所有属性.
pat*_*cus 13
您可以使用Schema::getColumnListing($tableName)获取表中所有列的数组.使用该信息,您可以创建一个基本数组,其中包含所有列名称作为键,以及null所有值,然后合并Drink对象的值.
public function getDrinkData(Request $request)
{
$drink = Drink::where('shopId', $request->session()->get('shopId'))->first();
if($drink) {
$drink = $drink->attributesToArray();
}
else {
$drink = Drink::firstOrNew(['shopId' => $request->session()->get('shopId')]);
// get the column names for the table
$columns = Schema::getColumnListing($drink->getTable());
// create array where column names are keys, and values are null
$columns = array_fill_keys($columns, null);
// merge the populated values into the base array
$drink = array_merge($columns, $drink->attributesToArray());
}
return view('shop.drink')->(['drink' => $drink])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16997 次 |
| 最近记录: |