Php Laravel从数据库中获取数据,ID来自唯一URL

Php Laravel从数据库中获取数据,ID来自唯一URL,php,database,laravel,routes,Php,Database,Laravel,Routes,我有一个简单的问题,但对我来说很难解决 excel中的My Addin创建唯一URL,并使用数据(param1,mobile\u number,message)发送到Laravel API。主标识符是param1 Laravel路线 Route::get('/{param1}', 'SendSmsController@index')->name('sendSms'); 数据库 id | param1 | mobile_number | message | ------

我有一个简单的问题,但对我来说很难解决

excel中的My Addin创建唯一URL,并使用数据(
param1
mobile\u number
message
)发送到Laravel API。主标识符是
param1

Laravel路线

Route::get('/{param1}', 'SendSmsController@index')->name('sendSms');
数据库

id  |  param1  |  mobile_number  |  message     |
----------------------------------------------------------
1   |  abc     |  123456789      |   Hi there   |
我的目标是打开URL
https://my.web.com/abc
我的手机收到了一条储存在数据库中的带有
信息的短信

但问题是如何在
controller
my
$mobile\u number
中识别URL中的
param1

当我用
dd($param1)
get
abc
打开URL时

有没有办法从数据库中获取其他列

laravel控制器

public function index($param1)
{
    return view('login')->with('param1'=>$param1);
}

首先将路线方法更改为Post,然后将您的手机号码或id发送到路线

// inside web.php
Route::post('/{param1}', 'SendSmsController@index')->name('sendSms');
在控制器中

public function index(Request $request)
{
     // if you send id
     $mobile_number = Model::find($request->id)->mobile_number;
     // if you send mobile_number
     $mobile_number = Model::where('mobile_number', $request->mobile_number)->first();

     // the logic to send SMS to $mobile_number
}

首先,您需要在您的路由之前添加“代码> > PARAM1之前的任何前缀,因为任何路由将匹配该参数,详情请参阅此路由,我们将考虑此路由

Route::get('send/sms/{param1}', 'SendSmsController@index')->name('sendSms');
其次,从route参数获取记录有两种方法

  • 你可以这样做
  • 如果您的
    param1
    是唯一的,您可以添加到您的
    Sms
    型号中
  • 现在在控制器中,您可以执行以下操作

    public function index(Sms $param1)
    {
       // now you can access mobile_number,message from $param1 instance
    }
    

    /{param1}
    不好,因为每一条路径都会与此匹配。@当我将
    路径
    更改为post CONT display
    URL
    时,请确认是否有其他方法可以做到这一点?当你说“无法显示URL”时,我不明白。你能解释一下吗please@Zack将
    get
    更改为
    post
    返回此错误:
    405方法不允许
    ok第二种方法有效,
    $sms=sms::where('param1',$param1)->first()
    dd($sms)
    返回包含数据库中所有数据的数组。我怎么能把它们卖给varialbles
    $mobile\u number=?
    谢谢您可以执行
    提取($sms->toArray())
    现在您将有4个变量代表每个键,
    $id
    $param1
    $mobile\u number
    $message
    /**
    * Get the route key for the model.
    *
    * @return string
    */
    public function getRouteKeyName()
    {
        return 'param1';
    }
    
    public function index(Sms $param1)
    {
       // now you can access mobile_number,message from $param1 instance
    }