Добавьте его в app \ Http \ Controller \ Auth \ VerificationController.php
protected function getDateFormat()
{
return 'Y-m-d H:i:s';
}
Это не характерно для дополнительных методов. C# неявно не бросит объект к другому типу, если не будет подсказка о целевом типе. Примите следующее:
class A {
public static implicit operator B(A obj) { ... }
public static implicit operator C(A obj) { ... }
}
class B {
public void Foo() { ... }
}
class C {
public void Foo() { ... }
}
Каким методом Вы ожидали бы позвониться в следующем утверждении?
new A().Foo(); // B.Foo? C.Foo?
Нет, Вы не имеете, но вычет типа компилятора C# не достаточно мощен для понимания кода, и, в частности, он не смотрит на неявные операторы. Необходимо будет придерживаться с Expression<Func<T,bool>>
— почему бы не дополнительные методы как Or
, And
непосредственно по выражениям?
Как Anton говорит, если Вы помещаете дополнительные методы непосредственно на Expression<Func<...>>
это, вероятно, работало бы.
Больше объяснения... ничто особенно умное, но идея не было бы то, что у Вас нет a PredicateBuilder
класс, из которого Вы создаете экземпляры. Вместо этого у Вас просто есть чисто статические стандартные блоки:
public static class Predicates
{
public static Expression<Func<T, bool>> True<T>()
{
return x => true;
}
public static Expression<Func<T, bool>> False<T>()
{
return x => false;
}
public static Expression<Func<T, bool>> And<T>(
this Expression<Func<T, bool>> left,
Expression<Func<T, bool>> right)
{
return ... // returns equivalent of (left && right)
}
}
Те две функции True
и False
играйте роль Вашего PredicateBuilder(bool)
конструктор, и у Вас, по-видимому, были бы подобные для примитивных сравнений и так далее и затем операторы как And
позволил бы Вам включить два выражения вместе.
Однако затем Вы теряете способность использовать символы оператора, которые Вы, возможно, использовали со своим интерфейсным объектом, и вместо этого необходимо использовать имена методов. Я играл вокруг с тем же видом подходов, и вещь, к которой я всегда возвращаюсь, состоит в том, что я хочу смочь определить дополнительные операторы. Команда C#, по-видимому, рассмотрела их для 3,0 (наряду с дополнительными свойствами), но они были более низким приоритетом, потому что они не играли роль в полных целях Linq.