使用ajax从控制器调用函数的新路径或其他方法? Laravel 5.2,Ajax

时间:2016-05-24 13:14:56

标签: php jquery ajax laravel session

是否可以在不使用路由的情况下调用控制器中的函数,或者是否可以使用以下两个参数创建新路由,在添加会话后重定向到特定页面?

route::get('addsesion/{session-name}/{session slug};

如果可以使用ajax,有人可以指出我正确的方向吗?

基本上我想要做的是从链接addSession($session_name, $slug)点击ajax的控制器调用函数<a href/>,它存储我的特定会话名称和当前页面的slug。< / p>

它应该在单击时调用此addSession函数,存储会话数据,然后重定向到其他URL。例如/seeparts,显示所有已保存的会话数据。

我是否必须创建一个新的route route::get('addsesion/{param1 - session-name}/{param2 - session slug}', currentController@addSession );,然后将该路由用作ajax网址?或者有没有其他方法如何使用控制器的功能?

我当前的控制器:

public function showAll() {
  $parts = \DB::table() - > all();
  $data = [
    'parts' => $parts,
  ];
  return view('partlist', $data);
}

public function showCpu($slug) {
  // Specification query
  $specs = \DB::table() - > select($select_columns) - > where('slug', $slug) - > first();
  $data = [
    'specs' => $specs,
    'slug' => $slug
  ];
  return view('part', $data);
}

//Add session - call this function
public function addSession($session_name, $slug) {\
  Session::put($session_name, $slug);
}
}

part.blade.php:

<html>
@include('head.blade.php')
</body>
     //on .add-to-partlist click adds session name that is specified in html and the current slug of the page
    <a class="add-to-partlist" href="/seeparts" >Add to partlist</a>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

我认为您可以在视图中使用Service Injection绑定控制器功能。 也许你可以参考它,https://laravel.com/docs/master/blade#service-injection

例如:

<html>
@include('head.blade.php')
@inject('currentController', 'App\Http\Controllers\currentController')
</body>
     //on .add-to-partlist click adds session name that is specified in html and the current slug of the page
    <a class="add-to-partlist" href="/seeparts" onClick="{{ $currentController->addSession($session_name, $slug) }}">HERE</a>

</body>
</html>