我想根據URL字符串爲我的模型中的$ table屬性賦值。在那裏我得到「數組到字符串轉換」錯誤。以下是代碼級別詳細信息。有人可以幫忙嗎?謝謝。Laravel 4.2數組到字符串轉換錯誤
我編寫了我的模型__constructor(),如下所示。
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class Disaster extends Eloquent {
use UserTrait,
RemindableTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table;
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');
public function __construct($disasterArea, $disaster = "flood") {
$this->table = $disasterArea . '_' . $disaster;
}
}
我想,如下圖所示,從我的控制器通過,同時模型實例所需的值。
class DisasterController extends \BaseController {
public function getFloodTweets($floodArea){
$flood = new Disaster($floodArea, "floods");
$floodTweets = $flood->orderBy('created_at','desc')->groupBy('tweets')->paginate(10);
$floodAreaUc = ucfirst($floodArea);
return View::make("disaster.floodTweets",['title'=>"$floodAreaUc Flood",'floodTweets'=>$floodTweets,'floodArea'=>$floodAreaUc]);
}
}
}
這意味着,如果我觸發一個URL像www.example.com/floods/city我的模型應該建表爲「city_floods」,這是我們下面的命名約定。 而且,我觀察到表名正在正確構建,但拋出此錯誤。奇怪的是我的代碼工作正常時,我硬編碼這個表名。即
$ this-> table =「city_floods」正常,但 $ this-> table = $ disasterArea。 '_'。 $災難不。我不明白有什麼區別。有人可以建議我在哪裏做錯了。
我使用Laravel 4.2框架在UBUNTU 14.04上工作。
編輯
嘗試在'__construct'中記錄變量,然後將其分配給t能夠。然後你可以看到究竟傳遞了什麼。 – aynber
@aynber你的意思是顯示變量? –
是的。 'Log :: info($ disasterArea);'會將變量寫入您的日誌文件中,這通常存儲在app/storage/logs中。 – aynber