2017-01-28 5 views
0

私はLaravelに新規です& Eloquent、私はDjangoから来ています。私は私の結果にフィルタを作成し、結果をフィルタリングするためにオブジェクトを使用することができますジャンゴでオブジェクトに与えている間に雄弁にどこを使うことができますか?

...

私はまた、Laravel /雄弁でこれを行うことができれば把握しようとしている...

ここで私が何をしようとしているのですが....

create_messages_table.php

<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateMessagesTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('messages', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->timestamps(); 

      $table->integer('user_id'); 
      $table->string('message'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropIfExists('messages'); 
    } 
} 

Message.php

​​

MessageController.php

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Message; 
use Illuminate\Support\Facades\Auth; 

class MessageController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $messages = Message::where("user", Auth::user())->get(); 

     dd($messages); 
     return $messages; 
    } 
} 

問題は、コントローラインデックス()関数があまりにも送られていると...私は、「ユーザー」欄が存在しないというエラーを取得することです...そしてそれ私はモデルのuser()関数がそれを処理し、Auth :: user()を使ってオブジェクトを返すことを比較できると仮定しました。

私は間違っているのですか、それとも間違っていますか?

答えて

0

"where"クエリでは、最初のパラメータはデータベースの列でなければなりません。 「ユーザー」列を使用する場合は、ユーザー列をテーブルに追加することをお勧めします。 私はauth:user()が現在のユーザーを認証することだと思います。 laravel eloquentは、「user」列が存在しないことを警告するだけです。ユーザー列を作成し、次に何が起こるかを確認することをお勧めします。

+0

私は、user_idがユーザーのIDなので、オブジェクト(Userオブジェクト)を使用してクエリをプリフォームすることができるかどうかを知っています。 。 – Ricky

関連する問題