gpt4 book ai didi

php - 在 ajax 调用中 Laravel 4 资源中的更新函数使用什么 url

转载 作者:行者123 更新时间:2023-12-01 06:47:10 25 4
gpt4 key购买 nike

我正在尝试更新数据库中用户的字段,并且我正在尝试使用 ajax 来完成此操作。我有一个资源(粉丝),在我的 FansController 中我有一个函数 update($id):

我像这样使用ajax调用:

var full_name = $("#user_name").val();
var full_location = $("#user_city").val();

request = $.ajax({
url: "http://url.com/fans/update",
type: "post", success:function(data){console.log(data);},
data: {'full_name': full_name, 'full_location': full_location} ,beforeSend: function(data){
console.log(data);
}
});

full_name 和 full_location 被拉得很好。我不确定它们是否正确地传递给函数。 console.logs 记录正常,但它们没有在控制台中显示正确的数据(它只是打印整个源)。

更新功能:

public function update($id)
{

//get saved info from fan profile
$full_name = Input::get('full_name');
$full_location = Input::get('full_location');

//echo var_dump($full_name);

$split_name = explode(" ", $full_name);

$first_name = $split_name[0];

$i=0;
foreach ($split_name as $name) {

if($i > 0) {
$last_name = $name[i] + " ";
}
$i++;
}

$trimmed_last_name = trim($last_name);


//find user
$fan = Fan::where('id', '=', $id)->first();

$fan->first_name = $first_name;
$fan->last_name = $trimmed_last_name;

$fan->save();
}

数据库没有更新,所以我假设该函数没有被调用(即使ajax显示成功)。我缺少什么吗?谢谢。

最佳答案

转到终端/命令提示符并键入并运行以下命令:

php artisan routes

这将返回类似如下的内容(有关应用程序中声明的所有路由的详细信息):

+--------+---------------------------------------------------------------+---------------+-------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+---------------------------------------------------------------+---------------+-------------------------------+----------------+---------------+
| | GET posts | posts.index | PostController@index | | |
| | GET posts/c | posts.create | PostController@create | | |
| | POST posts | posts.store | PostController@store | | |
| | GET posts/{posts} | posts.show | PostController@show | | |
| | GET posts/{posts}/edit | posts.edit | PostController@edit | | |
| | PUT posts/{posts} | posts.update | PostController@update | | |
| | PATCH posts/{posts} | | PostController@update | | |
| | DELETE posts/{posts} | posts.destroy | PostController@destroy | | |
+--------+---------------------------------------------------------------+---------------+-------------------------------+----------------+---------------+

从此结果中找出用于该方法的适当url。在这种情况下,对于使用 PATCH 请求 methodupdate 方法,您可以使用如下内容:

posts/10

由于它是一个资源 Controller ,您可以使用如下所示的内容:

$.ajax({ 
url: "fans/10", // 10 is user id to update, for example
type: "post",
data: { full_name:full_name, full_location:full_location, _method:"PATCH" },
success:function(data){
console.log(data);
}
});

因此您的 update 方法将被匹配,因为您的 update 方法如下所示:

public function update($id)
{
//...
}

根据您的url,您应该声明以下路由(资源):

Route::resource('fans', 'FansController');

如果您将 JS 代码保存在一个独立的文件中,那么您还可以检查 this article ,它是关于如何将模型对象从服务器发送到客户端(作为 JavaScript 对象),将有助于了解如何将 id 从服务器发送到客户端,因此您可以在 JS 函数中使用 id

关于php - 在 ajax 调用中 Laravel 4 资源中的更新函数使用什么 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com