[英]laravel 4.2 - Undefined variable
我想將我的item
的狀態保存在數據庫中:
我的遷移看起來像這樣:
class CreateItemsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('items', function(Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->boolean('done');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('items');
}
}
在我的Items
模型中,我可以將我的項目標記為完成或撤消:
class Items extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'items';
public function mark() {
$this->$done = $this->done ? false : true;
$this->save();
}
}
在我的Controller
我正在使用postIndex
方法來設置我的項目:
public function postIndex() {
$id = Input::get('id');
$item = Items::findOrFail($id);
$item->mark();
return Redirect::route('home');
}
但是,我得到一個錯誤:
ErrorException thrown with message "Undefined variable: done"
Stacktrace:
#20 ErrorException in C:\xampp\htdocs\laravel_project\todo-lara\app\models\Items.php:18
#19 Illuminate\Exception\Handler:handleError in C:\xampp\htdocs\laravel_project\todo-lara\app\models\Items.php:18
#18 Items:mark in C:\xampp\htdocs\laravel_project\todo-lara\app\controllers\HomeController.php:16
#17 HomeController:postIndex in <#unknown>:0
#16 call_user_func_array in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:231
#15 Illuminate\Routing\Controller:callAction in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:93
#14 Illuminate\Routing\ControllerDispatcher:call in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:62
#13 Illuminate\Routing\ControllerDispatcher:dispatch in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\Router.php:962
#12 Illuminate\Routing\Router:Illuminate\Routing\{closure} in <#unknown>:0
#11 call_user_func_array in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\Route.php:109
#10 Illuminate\Routing\Route:run in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\Router.php:1028
#9 Illuminate\Routing\Router:dispatchToRoute in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Routing\Router.php:996
#8 Illuminate\Routing\Router:dispatch in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:775
#7 Illuminate\Foundation\Application:dispatch in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:745
#6 Illuminate\Foundation\Application:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\barryvdh\laravel-debugbar\src\Middleware\Stack.php:34
#5 Barryvdh\Debugbar\Middleware\Stack:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Session\Middleware.php:72
#4 Illuminate\Session\Middleware:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Cookie\Queue.php:47
#3 Illuminate\Cookie\Queue:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Cookie\Guard.php:51
#2 Illuminate\Cookie\Guard:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\stack\builder\src\Stack\StackedHttpKernel.php:23
#1 Stack\StackedHttpKernel:handle in C:\xampp\htdocs\laravel_project\todo-lara\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:641
#0 Illuminate\Foundation\Application:run in C:\xampp\htdocs\laravel_project\todo-lara\public\index.php:49
有什么建議可以更改代碼以使其正常工作嗎? 此外,為什么這不起作用?
感謝您的回答!
我認為這行代碼給您帶來了問題(在您的mark()函數中)
$this->$done = $this->done ? false : true;
在完成之前擺脫$符號
$this->done = $this->done ? false : true;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.