2

foreach ループを使用して複数のリストにサブスクライバーを追加しようとしています。ただし、サブスクライバーは 1 つのリストにのみ追加されます。

したがって、$course は毎回正しい値を送信しています。しかし、TrainingCourse の find メソッドは、キャンペーン モニター ID を変更しません。間違ったレコードの ID を取得しています。

どこが間違っていますか?

foreach($selectedCourses as $course)
{
    $courseCMId = TrainingCourse::find($course)->first();

    $wrap = new CS_REST_Subscribers($courseCMId->campaign_monitor_id, $auth);

    $result = $wrap->add([
        'EmailAddress' => $registration->email,
        'Name'         => $registration->name,
        'Resubscribe'  => true
    ]);

    if(!$result->was_successful())
    {
        $cm['status_code'] = $result->http_status_code;
        return Redirect::to('training/register', compact('cm'))
                       ->withErrors($validator)
                       ->withInput(Input::except('password', 'password_confirmation'));
    }
}
4

1 に答える 1

0

行の変更:

$courseCMId = TrainingCourse::find($course)->first();

に:

$courseCMId = DB::table('training_courses')->where('id', $course)->first();

私の問題を解決しました

于 2015-03-02T17:01:09.623 に答える