2017-11-01 17 views
2

現在のテーブルに保存する値に基づいて、別のテーブルのどのカラムに値があるかチェックします。ここにコントローラがありますので、私が意味するものを得ることができます他のテーブルの値を現在の値に基づいてチェックする

$preference = Preferences::pluck('preferences_is_active'); 

    $book = new book; 
    $book->book_description = Input::get('description'); 
    $book->book_title = Input::get('title'); 
    $book->user_id = Auth::user()->id; 

    if($preference !== 1) { 
     $book->book_published = 0; 
     $book->save(); 
    } 
return Redirect::to('/users/books'); 

私はユーザーが彼のプロフィールに新しい本の情報を保存できるようにしたいと思います。また、テーブルpreferencespreferences_is_activeカラムをチェックして、条件を実行する必要があります。

preferences_is_activeの値に関係なく、0は常にbooksテーブルに保存されるという問題があります。私はここで恋しいですか?

+0

$ preference = Preferences :: pluck( 'preferences_is_active');列のコレクションを取得します。あなたがチェックするとこれがうまくいかない場合 –

+0

book_publishedのデフォルト値は0ですか? Preferences :: pluckはアイテムのコレクションを返し、特異アイテムは返しません。 – Crawdingle

+0

book_publishedのデフォルト値は1 – Ivan

答えて

1

問題はpluckがacollectionを返しますので、あなたはこのようにそれを行うことができます。

$preference = Preferences::first(); 

$book = new book; 
$book->book_description = Input::get('description'); 
$book->book_title = Input::get('title'); 
$book->user_id = Auth::user()->id; 

$book->book_published = $preference->preferences_is_active; 

$book->save(); 
return Redirect::to('/users/books'); 
+0

設定テーブルに複数の行が含まれることがあります。 –

+0

@MahfuzShishir彼の論理で、彼は1つの結果を期待しているので、私はそうは思わない:p – Maraboc

+0

@イワンはそうですか? – Maraboc

1

このコードを試してみてください。

$preference = Preferences::first(); 

$book = new book; 
$book->book_description = Input::get('description'); 
$book->book_title = Input::get('title'); 
$book->user_id = Auth::user()->id; 

if(!$preference) { 
    $book->book_published = 0; 
    $book->save(); 
} 
return Redirect::to('/users/books'); 
+0

プリファレンスからどの列を確認するのか – Ivan

+0

IDを入力しないと、どのように1つの行だけを選択しますか? –

+0

これは1行だけです – Ivan

関連する問題