Route::post('home' ,'FacebookControllers\PostsController@save');
Route::post('home' , 'FacebookControllers\MessageController@storeMessage');
не сработает - как laravel определить, куда отправлять сообщения? Я бы создал два задания и один маршрут, затем проверил значение в Request
и отправил правильное задание.
Сначала создайте два класса заданий с
php artisan make:job FacebookSave
php artisan make:job FacebookStoreMessage
Сгенерированный файл будет выглядеть примерно так:
<?php
namespace App\Jobs;
use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
class FacebookSaveMessage extends Job implements SelfHandling
{
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
}
}
В методе задания handle()
вы можете делать то, что хотите, в своем контроллере.
Теперь маршрут, давайте делать
Route::post('home' ,'FacebookControllers\PostsController@findAction');
и в соответствии с этим в вашем PostsController добавьте метод (я назвал его findAction) вот так:
public function findAction(\Illuminate\Http\Request $request) {
if ($request->has('submitPost')) {
return $this->dispatch(new \App\Jobs\FacebookSave($request));
} else if ($request->has('storeMessage')) {
return $this->dispatch(new \App\Jobs\FacebookStoreMessage($request));
}
return 'no action found';
}
Таким образом, правильное действие будет выполнено в зависимости от отправленного значения.
Измените конструктор задания на что-то вроде:
public function __construct($data)
{
$this->data = $data;
}
И вы можете получить доступ к отправленным значениям из форм, которые вы отправили внутри метода задания handle()
с помощью $this->data
person
baao
schedule
28.08.2015