2017-10-18 61 views
0

我是Laravel的新手。我在将数据存储到数据库时遇到问题。我有这样的实例:Laravel - 如何将函数的返回存储到数据库?

create.blade.php

{!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 
    <div class="form-group"> 
     {{Form::label('url', 'URL')}} 
     {{Form::text('url', '', ['class' => 'form-control', 'placeholder' => 'URL'])}} 
    </div> 
    {{lol()}} 
    {{Form::submit('Submit', ['class'=>'btn btn-primary'])}} 
    {!! Form::close() !!} 

WebsitesController.php

public function store(Request $request) 
    { 
     $this->validate($request, [ 
     'url' => 'required' 
     ]); 

     $website = new Website; 
     $website->path = $request->input('url'); 
     $website->user_id = auth()->user()->id; 
     $website->save(); 
    } 

这工作。现在我希望不要从输入中获取url以从函数中获取它。假设我有这样的功能:

function testurl(){ 
    return "http://test.com/"; 
} 

我在哪里放我的功能代码?我如何获得$ website->路径来存储该函数的返回值?

谢谢。

回答

0

可以在控制器定义功能像

public function testUrl(){ 
    return "http://test.com/"; 
    } 

,如果你是在同一个控制器调用它,你可以做

$url = $this->testUrl(); 

,如果你是从其他控制器打电话,你可以做

$url = $yourController->testUrl(); 

然后,您可以直接设置

$website->path=$url 
+0

谢谢。还有一个问题。为什么我需要网站模型? –

+0

Laravel附带的Eloquent ORM为您的数据库提供了一个简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。模型允许您查询表中的数据,并将新记录插入表中。 –

+0

@AarifAslam,只是分享一个良好的做法。使这个'testUrl'方法'私人'。 –

0

Website()是你的模型。您可以将您的功能存储在模型中。所以你可以直接从模型中调用它。

+0

您应该发布样本/伪代码 –

相关问题