質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Doctrine

Doctrineは、データベースの抽象性とPHPで書かれたORMを扱うためのオープンソースのライブラリとツールの集合です。

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Q&A

解決済

1回答

3809閲覧

Symfony3.0 Doctrine 検索条件を複数つけて更新できない

退会済みユーザー

退会済みユーザー

総合スコア0

Doctrine

Doctrineは、データベースの抽象性とPHPで書かれたORMを扱うためのオープンソースのライブラリとツールの集合です。

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

0グッド

0クリップ

投稿2016/06/20 09:13

前提・実現したいこと

symfony3を使ってコマンドを作成しています。
Doctrineを使用して、複数の条件を指定してレコードを取得した後、レコードを更新したいです。
一つの検索条件が以下のように一つの場合は更新できます

$manager = $doctrine->getManager(); .... .... .... $test = $Repository->findOneByHoge('1234'); $test->setTestId('1'); $manager->persist($test); $manager->flush();

しかし
下記のように複数検索条件をつけるとエラーがでます

$manager = $doctrine->getManager(); .... .... .... $test = $Repository->findOneBy(array('hoge' => '1234', 'hogehoge' => 'foo'); $test->setTestId('1'); $manager->persist($test); $manager->flush();

解決方法をご教示していただけないでしょうか。よろしくお願いします。

発生している問題・エラーメッセージ

Error: Call to a member function setTestId() on null

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$testsetTestIdメソッドがないようですが、正しくエンティティは取得されていますか?
dump($test);で正しくエンティティが取得されているか確認できていますか?

投稿2016/06/20 09:57

編集2016/06/20 10:01
ucan-lab

総合スコア888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/21 04:45

ご回答ありがとうございます。 別のメソッドで試してみると上手くいったり、いかなかったりで、正しくエンティティが取得できていませんでした。 アドバイスありがとうございました。
ucan-lab

2016/06/21 05:01

findByで取得したときにif (!$test) { // エンティティの取得に失敗 } のようにチェックいれた方が良いですよ。
退会済みユーザー

退会済みユーザー

2016/06/22 01:54

ありがとうございます。 すぐに実行いたします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問