Laravel ile controller bolumunde bir islemin basarili olup olmadigini anlamak icin try catch blogu kullanabiliriz, islem catch blogunu duserse bunu bir mesaj olarak almak istersek, ::withMessages
ile throw yapabiliriz.
<?php
namespace App\Http\Controllers;
use App\Services\Newsletter;
use Illuminate\Http\Request;
use \Illuminate\Validation\ValidationException;
class NewsletterController extends Controller
{
public function __invoke(Newsletter $newsletter)
{
request()->validate([
'email' => 'required|email',
]);
try {
$newsletter->subscribe(request('email'));
} catch (\Exception $e) {
throw ValidationException::withMessages([
'email' => 'This email could not be added to out newsletter'
]);
}
// ddd($response);
return redirect('/')->with('success', 'You are now signed up for our newsltter');
}
}