Javascript 如何将对象从视图传递到控制器

Javascript 如何将对象从视图传递到控制器,javascript,php,jquery,laravel,fullcalendar,Javascript,Php,Jquery,Laravel,Fullcalendar,我有一个object$trial,它在视图中填充。我想把它作为POST传递给route,以便使用它的数据调用函数。这是为fullcalendar创建一个事件。我很确定我已经坐在这上面这么久了,我想得太多了 想要使用eventRender回调执行此操作,但无法确定如何将数据传递给它,请尝试simple$.post,以便在控制台中获取方法不允许或未知状态 我现在有一些虚拟数据 这里的目标是通过标记的时间范围创建事件 控制器函数,用于在我设法传递数据时向数据库添加新记录 public function

我有一个object$trial,它在视图中填充。我想把它作为POST传递给route,以便使用它的数据调用函数。这是为fullcalendar创建一个事件。我很确定我已经坐在这上面这么久了,我想得太多了

想要使用eventRender回调执行此操作,但无法确定如何将数据传递给它,请尝试simple$.post,以便在控制台中获取方法不允许或未知状态

我现在有一些虚拟数据

这里的目标是通过标记的时间范围创建事件

控制器函数,用于在我设法传递数据时向数据库添加新记录

public function addEvent(Request $request)
{
    //dd($request);

    $event = new Event;
    $event->title = $request['title'];
    $event->start_date = $request['start_date'];
    $event->end_date = $request['end_date'];
    $event->save();

    \Session::flash('success','Event added successfully.');
    return redirect('/events');
}
web.php路由

Route::get('/events', 'EventController@index');
Route::post('/events', 'EventController@addEvent');
还有一个索引函数,我目前最常用它来修改表,使其可编辑,等等

public $trial = [];

//
public function index()
{
    $events = [];
    $data = Event::all();
    if($data->count()) {
        foreach ($data as $key => $value) {
            $events[] = Calendar::event(
                $value->title,
                true,
                new \DateTime($value->start_date),
                new \DateTime($value->end_date.' +1 day'),
                null,
                // Add color and link on event
                [
                    'color' => '#f05050',
                    'url' => '/events',


                ]
            );
        }
    }

    $calendar = Calendar::addEvents($events) //add an array with addEvents
    //->addEvent($eloquentEvent, [ //set custom color fo this event
        //'color' => '#800',
    //])
        ->setOptions([ //set fullcalendar options
        'firstDay' => 1,
        'selectable' => true,
        'unselectAuto' => false,
        'selectOverlap' => false,
        'editable' => true,
        'businessHours' => [
            'dow' => [ 1, 2, 3, 4, 5 ],
            'start'=> '08:00',
            'end' => '19:00',
        ]

    ])->setCallbacks([ //set fullcalendar callback options (will not be JSON encoded)
        'eventClick' => 'function(event) {
            console.log("You clicked on an event with a title of: " + event.title);
     }',

        'select' => 'function(start, end) {
            console.log("Selection start: " + start.format() + " selection end: " + end.format());

            $trial = {
                title: "rent",
                start_date: start.format(),
                end_date: end.format()
            };
            console.log($trial);


        }',
    ]);
欢迎提出任何建议


编辑:一般来说,我知道如何在控制器的函数中传递数据的唯一方法是通过表单提交数据,我没有专门使用Angular,但它与Vue有很多相似之处。我使用一个称为Axios的平台无关包,它允许您向服务器发送请求

为了回溯第二条,表单基本上是发送post请求的一般方式。url在表单中指定,值是输入字段

对于任何包,您都可以执行类似的操作:

指定url 指定请求类型post、get等 传递参数,但不是必需的 使用Axios,它看起来像:

axios.post('/mySite.com/something', { datum1: 'value', datum2: true })
      .then(response => () {
         this.someFunction(response.data);
      });
这有一些ES6的魔术箭头功能,但这与许多请求非常相似。正如我所说,第二个参数是可选的,或者您甚至可以传递一个数据对象

别忘了还包括csrf令牌。这是最简单的,如果你只是在你的页面头添加一个元标签,看看Laravel文档,但是你也可以直接把它作为一个_csrf参数传递进来。