UserController.php
public function updateuserdata(Request $request, $id)
{
//更新sql 程式碼
}
edit.blade.php
<script type="text/javascript">
function save_user_data(id,name) {
$.ajax({
type: "PUT",
dataType: 'json',
url: "<?php echo route('user.updateuserdata', '1'); ?>",
data: {
_token: "{{ csrf_token() }}",
id: id,
name: name
},
.....
</script>
目前我是這樣打
Route::put('/user/updateuserdata', 'App\Http\Controllers\User\UserController@updateuserdata')->name('updateuserdata');
但都出錯
顯示Route [user.updateuserdata] not defined.
請問在 routes\web.php 裡面要怎麼打才可以讓edit.blade.php 找到UserController.php 裡面的updateuserdata() ??
V大所定義的 Route:Route::put('/user/updateuserdata', 'App\Http\Controllers\User\UserController@updateuserdata')->name('updateuserdata');
Route的名稱是 updateuserdata
因此V大在 edit.blade.php
應該調用 route('updateuserdata')
而非 route('user.updateuserdata')
這裏先糾正一些寫做行為。
即然都已經使用了blade。
那就不該再看到
<?php .....?>
這種鬼東西存在。
正常一般來說,因該要在控制器呼叫 view 的情況下就給與連結的參數
再使用以下的方式來輸出變數。
{{$變數}}
當然了,其實Laravel也提供了route函數可供利用
而route最佳用法則是使用name別名處理。
如 woeichern 所說的。你的路由已經命名為 updateuserdata
那你就該使用其name來呼叫對應的指定路由。