2016-08-15 58 views
1

我从laracats.com从零开始学习laravel时遇到了上述错误, bellow是完全错误消息在Builder.php中的BadMethodCallException行2345:调用未定义的方法Illuminate Database Query Builder :: notes()

哎呀,看起来像是出了点问题。 1/1 BadMethodCallException在Builder.php线2345:调用未定义的方法照亮\数据库\查询\生成器:注释()

in Builder.php line 2345 
at Builder->__call('notes', array()) 
at Builder->notes() 
at call_user_func_array(array(object(Builder), 'notes'), array()) in Builder.php line 1426 
at Builder->__call('notes', array()) 
at Builder->notes() 
at call_user_func_array(array(object(Builder), 'notes'), array()) in Model.php line 3505 
at Model->__call('notes', array()) in NotesController.php line 19 
at Note->notes() in NotesController.php line 19 
at NotesController->store(object(Request), object(Card)) 
at call_user_func_array(array(object(NotesController), 'store'), array(object(Request), 'card' => object(Card))) in Controller.php line 80 
at Controller->callAction('store', array(object(Request), 'card' => object(Card))) in ControllerDispatcher.php line 146 
at ControllerDispatcher->call(object(NotesController), object(Route), 'store') in ControllerDispatcher.php line 94 
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96 
at ControllerDispatcher->callWithinStack(object(NotesController), object(Route), object(Request), 'store') in ControllerDispatcher.php line 54 
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\NotesController', 'store') in Route.php line 174 
at Route->runController(object(Request)) in Route.php line 140 
at Route->run(object(Request)) in Router.php line 724 
at Router->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 64 
at VerifyCsrfToken->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 
at StartSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Router.php line 726 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699 
at Router->dispatchToRoute(object(Request)) in Router.php line 675 
at Router->dispatch(object(Request)) in Kernel.php line 246 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 132 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 
at Kernel->handle(object(Request)) in index.php line 54 
at require_once('/home/archie/public_html/my_blog/public/index.php') in server.php line 21 

我NotesController是如下

namespace App\Http\Controllers; 

use App\Card; 
use App\Note; 
use Illuminate\Http\Request; 


class NotesController extends Controller 
{ 
    public function store(Request $request, Card $card) 
    { 


     $note = new Note; 

     $note->body = $request->body; 
     $note->notes()->save($note); 

     return back; 


} 
} 

卡模型如下

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Card extends Model 
{ 
    public function notes() 
    { 
    return $this->hasMany(Note::class); 
    } 

    public function path() 
    { 
    return '/cards/'.$this->id; 
    } 
} 
+1

请添加你的NotesController也 –

+0

你已经迁移你的表吗?与你的雄辩模型相关的名称是什么:'Notes'或'Note'?模型是否存在?你可以用下面的方法创建它:'php artisan make:model Note'或'php artisan make:model Notes'。尝试在命令行上运行:'composer dump-autoload'。 – Poiz

+0

@Poiz我使用了php工匠make:model Note –

回答

0

按照Laravel from scratch tutorial您要注意保存到存储卡。所以你应该使用$card->notes()->sav‌​e($note);而不是$note->notes()->save($note);

+0

上面添加了NotesController我试过了,仍然出现同样的错误 –

+1

您是否在Card模型中定义了notes()关系? –

+0

please add card model –